【发布时间】:2020-11-15 23:04:06
【问题描述】:
我经常在 Linux 和 macOS 上使用find 命令。我刚刚发现了parallel 命令,如果可能的话,我想将它与find 命令结合起来,因为find 命令在我们将特定文件搜索到大目录时需要很长时间。
我已搜索过此信息,但结果不够准确。似乎有很多可能的语法,但我不知道哪个是相关的。
如何将parallel 命令与find 命令(或任何其他命令)结合使用,以便从我的 MacBook 上的所有 16 个内核中受益?
更新
从@OleTange,我想我找到了我感兴趣的那种命令。
所以,要了解更多关于这些命令的信息,我想知道字符{}和:::在以下命令中的用处:
parallel -j8 find {} ::: *
1) 这些字符是强制性的吗?
2) 如何插入find 命令的经典选项,例如-type f 或-name '*.txt?
3) 目前我在.zshrc 中定义了函数:
ff () {
find $1 -type f -iname $2 2> /dev/null
}
如何用固定数量的作业做等价物(我也可以将其设置为 shell 参数)?
【问题讨论】:
-
您的问题太模糊,无法回答。请添加您需要使用的命令类型的详细信息...您是在寻找具有特定名称或具有特定内容的文件吗?您的搜索可能完全受 I/O 限制,因此投入更多内核也无济于事。
-
GNU
parallel几乎不再是新的了。请注意,尽管语法发生了变化,许多年前的热心示例不再有效。 -
@tripleee 语法发生了什么变化?
-
@OleTange Tollef Fog Heen 的原始
parallel使用破折号,而后来的版本将使用三个冒号或类似的东西。 Ubuntu 中有一个错误,文档使用新语法,但默认配置已启用旧语法。但这是很多年前的事了。看起来像stackoverflow.com/questions/16448887/…(虽然我猜你可能比我更了解背后的故事,或者可以猜到)。 -
当您提供 50 点赏金时,我想您很想得到一个好的答案。您可以通过回复我上面的评论来帮助自己,因为您正在执行的搜索类型可能会产生巨大的影响。
标签: linux macos command-line find gnu-parallel