我继承了一个庞大的媒体档案,没有统一的组织方案。其内容至少可以追溯到 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