问题标签 [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 投票
0 回答
54 浏览

shell - find 表达式中的隐式 -a

从查找手册页:

请注意-a在隐式指定(例如,两个测试之间没有显式运算符)或显式指定时比-o具有更高的优先级。这意味着找到 . -name afile -o -name bfile -print永远不会打印afile

示例中的隐式-a在哪里?

0 投票
1 回答
163 浏览

bash - `如何找到-name "*.sh" -exec chmod +x \{\} \;` 工作?

我找到了一个旧的单行 shell 脚本:

我了解它授予对父目录下目录中所有 shell 脚本的执行权限。但是,我以前没有见过语法\{\} \;

我猜反斜杠会将字符转义为 yield {} ;,但这意味着什么,为什么它会起作用?

0 投票
3 回答
166 浏览

linux - 如何使用 GNU find 命令按模式查找文件并按最近修改到最少的顺序列出文件?

我想使用 GNUfind命令根据模式查找文件,然后按最近修改文件到最近修改最少的顺序显示它们。

我明白这一点:

find / -type f -name '*.md'

但是然后将添加什么来对文件从最近修改到最少进行排序?


0 投票
0 回答
38 浏览

shell - 为什么 GNU 会找到它被告知不要的匹配文件?(在一个大查询中)

我有一个 GNU 查找命令

它在带有bin/ash文件(符号链接)的目录中运行。

问题:find打印rm bin/ash。为什么这样做?

find应该添加顺序条件-a,而不是-o。较短的查询有效。我检查了打破引号的路径,但没有。

什么没有影响:

  • 将类型查询部分切换为\( -type l -o -type f \) .
  • -a在所有条件之间添加。
  • 添加或删除./路径。
  • 在条件组或个别条件\( \)周围添加。-path
  • 替换!-not没有效果

我在 GNU find 中遇到了错误,还是我遗漏了什么?

更新:MCVE。在我的 Ubuntu 20.04 机器上,我执行以下操作:

最后一个命令打印所有 2150 个文件/符号链接/usr/bin/

uname -aLinux MyHostname 5.8.0-36-generic #40~20.04.1-Ubuntu SMP Wed Jan 6 10:15:55 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

0 投票
0 回答
16 浏览

file - GNU find -exec 测试文件 --mime-type -b =="image/jpg"

test在 GNU findutils 程序中将其作为 -exec 的参数运行时有哪些功能?正如问题的标题所示,我想将file程序作为 in 的表达式test运行,-exec以检查特定的 mime 类型的文件并仅输出这些文件。例如

我知道这是错误的,正确的编写方法是什么,即如果可能的话。

0 投票
2 回答
38 浏览

linux - 使用 find 查找具有特定模式而不是其他模式的文件

我想用它find来查找_101_名称而不是扩展名的.jpg文件.wsq,但我无法让它工作。

我试过这样的事情:

但它不起作用。

我究竟做错了什么?

0 投票
1 回答
139 浏览

bash - 在 --pipe 模式下重击“gnu-find”+“gnu-parallel”并使用一些名称中包含空格的文件执行 cmds

我似乎无法修复文件名问题中的空间问题,如通常推荐的那样,在这种情况下使用 -print0 用于 gnu-find 和 -0 用于 gnu-parallel 和 gnu-xargs 之类的开关。

我成功地将 find、parallel in pipe mode 和 xargs 结合起来,在“块”中为 100k+ 个文件并行运行命令。我在下面的示例中使用了 echo 和 ls,但我打算使用我自己的 python 命令。请注意,由于启动程序的开销,我想在多个文件上运行每个命令实例,因此在 --pipe 模式和 --block 等中使用并行。命令

结果是

如预期的。gnu-echo 运行两次,在一个实例中运行 3 个文件,在另一个实例中运行 2 个文件。如果我用 xargs 和 ls 尝试这个,我会在文件名问题中遇到经典空间......

导致这

在这种情况下,我似乎无法修复使用 -print0 等开关进行查找,使用 -0 进行并行和 xargs 等开关,通常建议用于此问题。并行似乎被 find 与 -print0 的输出混淆了。请告知,因为我真的没有想法了:(

0 投票
0 回答
28 浏览

bash - Bash:查找具有多个 -name 变量的命令

我正在使用此解决方案https://stackoverflow.com/a/10341883/6400605使用预定义的 -name 变量从指定文件夹获取文件列表,但在提供目录参数时它不起作用。

这在提供路径+文件名时有效,但在提供目录参数时无效。

0 投票
1 回答
38 浏览

macos - 查找在 OSX 上找不到的 util

我正在尝试运行使用该find命令的 make 文件。我收到一个错误消息make[3]: find: Command not found。我尝试findutils使用 brew 安装,但仍然无法正常工作。

~/.zshrc

生成文件

0 投票
0 回答
19 浏览

macos - 构建 GNU findutils 时编译错误“预期标识符”

我尝试在 macOS 10.15.7 (Intel) 上构建当前的GNU findutils 4.8.0 。

configure步骤成功完成(在此处输出),但该make步骤失败并出现错误:

此处make步骤的完整输出。

我认为这可能是由编译器不匹配引起的,但我很惊讶该configure步骤当时成功完成。

任何想法,如何让编译工作?


PS:我知道 Homebrew 提供了 findutils 公式,但出于其他原因,我想将 findutils 与 Homebrew 分开安装。