添加逻辑以“查找”包含 [条件 A] 或 [条件 B] 的目录

添加逻辑以“查找”包含 [条件 A] 或 [条件 B] 的目录

我继承了一个庞大的媒体档案,没有统一的组织方案。其内容至少可以追溯到 10 年前。有人要求我在这个大海里找到一根针,我对那根针的名字有一些猜测。

但我不知道它的具体名称。我想在终端中使用单个find命令来搜索替代名称。我想包含第二组:可能的文件扩展名。

用伪代码来说,我的意思是:

find [in a given directory] [files and folders whose name matches (*guess1* OR *guess2*) AND whose name matches (*.extension1 OR *.extension2)]

我应该如何在终端中表达这一点?

答案1

find 有针对此的运算符*,您还可以按优先级对它们进行分组:

find /some/path \
\( -name "*guess1*" -or -name "*guess2*" \) \
-and \
\( -name "*.extension1" -or -name "*.extension2" \)

在这里,我只是转义了换行符以使其更容易阅读,并且我转义了括号,因为它们可能对 shell 有特殊含义。

* 请注意,以上手册适用于 GNU find,默认情况下不随 OS X 一起提供(但可以通过brew install findutils)。但语法是相同的。

答案2

当我在 MacOS 和 Linux 之间切换时,学习终端查找非常有用。

但是当我在 MacOS 中帮助其他人查找文件/文件夹时,我不想提及使用终端。

EasyFind 是一种免费、快速且灵活的解决方案http://www.devontechnologies.com/download/products.html

相关内容