【发布时间】:2018-08-03 16:22:25
【问题描述】:
我有一个包含 577 个图像文件的列表,我需要在大型服务器上搜索这些文件。我不是 bash 方面的专家,所以我自己能做的最好的就是 577 行:
find /source/directory -type f -iname "alternate1_1052956.tif" -exec cp {} /dest/directory \;
...为每个文件名重复这一行。它可以工作...但它令人难以置信很慢,因为它会在整个服务器中搜索一个文件,然后转到下一行,但每次搜索可能需要 20 分钟。我一夜之间离开了,到早上才发现其中的 29 个,这太慢了。以这样的速度可能需要两周时间才能找到所有这些。
我尝试使用 -o 作为 OR 分隔符分隔每一行,希望它会搜索一次 577 个文件,但我无法让它工作。
有人有什么建议吗?我还尝试使用我拥有的文件名的 .txt 文件作为搜索的基础,但也无法让它工作。不幸的是,我没有这些文件的路径,只有基本名称。
【问题讨论】:
-
制作一份服务器上所有文件的列表,从该列表中 grep 577 个文件,创建一个 for 循环将这些文件复制到您想要的位置。
-
为什么
-o -iname不适合你?