如何使用 find 命令按照我输入的顺序搜索文件名中的字符串?

如何使用 find 命令按照我输入的顺序搜索文件名中的字符串?

假设我试图找到一个包含两个单词One和 的文件名Two。序列必须按该顺序排列 ,例如 。同时,我想排除任何以相反顺序包含单词的文件,例如 。./fksklknejnwjOnesvjnh9uibivuwTwojnwovno./fksklknejnwjTwosvjnh9uibivuwOnejnwovno

到目前为止,我得到的只是以下内容,它不排除单词顺序错误的文件:

find . -type f -name "*One*" -name "*Two*"

如果这个问题非常基本,任何帮助将不胜感激和抱歉。只是一个初学者,第一次在这里发帖。

答案1

-name中的测试使用find常见的文件名通配模式。该模式与*One*Two*包含两个子字符串OneTwo按该顺序的任何名称相匹配。

所以:

find . -type f -name '*One*Two*'

-name '*One*' -name '*Two*'可以找到名称包含两个字符串的文件,顺序不限。由于每个单独的测试对于单词顺序“错误”的文件都是正确的,因此这将为您提供要排除的文件。

相关内容