问题标签 [gnu-findutils]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
33 浏览

regex - findutils 中关于不区分大小写的错误?

当前文件夹中有一个名为foo.js的文件。

我使用 find 进行搜索:

我的系统是 ubuntu 14.04。

findutil 的版本是 4.4.2

当我使用时-regex, find 将使用区分大小写的模式。但:

  • [R-T]将匹配小写字母's',并且
  • [RST]不会匹配 's'。

问题

为什么这些结果是我的搜索结果?

0 投票
1 回答
67 浏览

bash - 在不同时间修改的目录中查找文件

在这里抨击新手。任务是在一个(相当大的)目录中查找修改日期介于不同时间对之间的所有文件。这些时间在 CSV 文件中指定为 Unix 时间戳:

我早期的想法是使用findand awk

find似乎无法识别这种日期格式。更紧迫的是,此代码仅将第一个日期发送到find,其余的将被打印:

有没有办法用一个 find 命令来做到这一点?还是我应该尝试别的?

0 投票
2 回答
90 浏览

regex - 使用正则表达式识别文件名中两个不同子字符串中的任何一个?

当我运行我的脚本时,我指定了我在源目录中的文件中寻找的模式。模式可以位于文件名中的任何位置。

当我做:

该脚本按需要运行,所有名称中带有“TOM”的文件都被打包。

但是,如果我希望脚本打包名称中带有“TOM”或“ JER ”的文件,则脚本会失败。我尝试了以下各项:

在我的脚本中迭代文件的 for 循环:

(我在脚本顶部的“while getopts”中将 -p 标志的值分配给 $PATTERN)

示例文件名:

编辑:按照要求JER更正为_JER_

0 投票
0 回答
109 浏览

bash - 为什么这种非递归的“查找”比搜索“ls”的输出慢得多?

我写了两个不同的脚本如下:

第一个脚本需要 24 分钟才能列出 2367 个文件路径,第二个脚本需要 16 秒才能列出相同数量的文件路径。

为什么差别这么大?我在不同的日子、多次、以任何顺序运行它们,第一个脚本总是花费 20 分钟以上,第二个脚本花费不到 20 秒。

操作系统:红帽


更新 2

查找(GNU findutils)4.4.2

我运行了这个脚本

结果统计内容:

0 投票
3 回答
7014 浏览

linux - Linux:查找包含 4 或 5 个字符的文件名

如何查找由 4 个或 5 个字符组成的文件名?

对于 4 个字符的文件名,我可以使用find . -name ????.tgz,但是如何将其扩展为 4 或 5 的长度?

0 投票
1 回答
51 浏览

arrays - 有没有办法将选项作为数组传递以在 bash 中查找命令?

rsync我可以在一个数组中定义我的排除/选项并在后续命令中使用这些数组,例如

rsync "${rsyncOptions[@]}" "${rsyncExclusions[@]}" src dest

我想使用该find命令实现相同的目的,但找不到使其工作的方法:

在我尝试定义数组的任何组合中(单引号与双引号,转义括号)我总是以错误告终:

这样做的正确方法是什么?

0 投票
2 回答
77 浏览

shell - GNU 查找“或”功能不适用于 -print0 | xargs -0 焦油

我正在使用这个命令来查找特定的文件(2 个文件),它们应该是独立的;

并返回正确的文件;

但是,如果我尝试将这些创建的文件制作成一个 tarball,它只包含-inamefind 命令的第一部分,就像这样;

所以它不包括*.pdf这个例子中的 s 并且只包括*.txts 在 tarball 中:

我该如何解决这个问题,以便将*.txts 和*.pdfs 都变成一个压缩包?

0 投票
2 回答
787 浏览

bash - 如果找到匹配,则停止查找命令的递归

使用 GNU findutils,我需要在目录树中搜索某个文件。如果已为给定分支找到文件,我想防止 find 进一步递归到分支中。假设我想找到文件 foo,这是我的目录树:

鉴于我正在搜索上面的树,我想找到 a/foo 和 c/foo。但是,我不想找到 a/a1/foo,因为我已经在 a1 的父目录中找到了 foo。看来我应该在 find 命令中使用 -prune 标志,我找到了这个链接https://unix.stackexchange.com/questions/24557/how-do-i-stop-a-find-from-descending-into-例如found-directories,但我无法使其工作。我的尝试包括:

0 投票
1 回答
1464 浏览

linux - 查找命令在终端中有效,但在 bash 脚本中无效

我写了一个查找命令,它查找文件,但不包括其他文件/目录。我确实回应了这段代码并复制了它。如果我将它粘贴到终端中,它可以工作。一些文件被排除在外。但是如果我从脚本中执行它,它就不会按预期工作。

我试图逃避我的变量,在括号之间引用它们,比如$()or${}但没有任何效果。

我的查找代码如下所示:

实际上它会像这样执行:

上面的第二个代码在终端中有效,但在脚本中无效。我做错了什么?

有关更多信息,我将尝试在下面粘贴必要的代码,我正在尝试进行备份并希望使用 find 和 cp 来做到这一点。我的脚本的大部分代码都被省略了。我认为下面的代码是解决此问题所需的最少代码。

如果给出,预期的结果应该只是排除一些文件/目录。

如果需要完整的脚本,请告诉我。

0 投票
1 回答
76 浏览

bash - 为什么我不能使用 find 排除目录

我尝试使用findand对目录中的所有子目录运行命令-exec,但是在其中一个目录上,运行脚本的用户没有足够的权限,并且出现错误(权限被拒绝)。我试图忽略使用其中一个! -path或使用的目录-prune。这些方法都不起作用。我已经尝试了下面的两个命令。

我尝试了每一种组合subDirToExclude——./开头有和没有/*,最后有和没有。我已经尝试了相对路径、完整路径以及您可以想到的所有它们的每一个组合来尝试匹配此路径,但它根本不起作用。手册页没有帮助,并且该论坛上任何相关问题的建议都不会产生任何有用的结果。为什么手册页中建议的方法都不起作用?这实际上是如何做到的?