Pet*_*gan 5 command-line find filename
我正在运行 Ubuntu 14.04,目前正在尝试使用以下命令搜索包含“hello”、“165”和“920”(在它们的名称中 - 不在文件中)的文件和文件夹:
find . -name "hello 165 920" > /search/results/here/search20170224.txt
Run Code Online (Sandbox Code Playgroud)
当我在 Nemo 中搜索这样的字符串(“hello 165 920”)时,给出的结果就是我的目标。如果文件或文件夹包含单词“hello 165 920”(以任何给定的顺序或其他文本),则显示结果。
示例:helloxx165xx920、hello_165-920、hello165920
所以我想要做的绝对是可能的,但是通过 CLI 中的 find 命令,我只能获得完美匹配的结果。
我不知道如何使用 find 命令进行这种搜索,我需要一个接一个地运行大约 500 个这样的搜索;所以需要一个 CLI 方法,所以我最终不必手动设置每个搜索,并且由于搜索的绝对大小和深度而最终每 5 分钟使 Nemo 崩溃一次。
任何人都可以提供的任何帮助将不胜感激 =]
ter*_*don 11
您需要使用通配符(*foo*而不是foo)、多个-name测试,并将它们与-and:
find . -name "*hello*" -and -name '*165*' -and -name "*920*" > search20170224.txt
Run Code Online (Sandbox Code Playgroud)
如果您要搜索许多不同的字符串,您可以将它们保存在一个文件中,其中每个字符串都是一个(空格分隔的)列:
hello 165 920
goodbye 321 123
Run Code Online (Sandbox Code Playgroud)
然后,您可以遍历文件并构建find查询:
while read a b c; do
find . -name "*$a*" -and -name "*$b*" -and -name "*$c*" > search."$a"_"$b"_"$c".txt
done
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
231 次 |
| 最近记录: |