【发布时间】:2019-12-06 22:24:26
【问题描述】:
我在filenames.txt 中有一个模式列表,我想在文件夹中搜索包含这些名称的文件名。
patterns.txt:
254b
0284ee
001ty
288qa
我想在文件夹中搜索文件名中包含任何这些模式的文件名,并将所有找到的文件复制到目标目录。
到目前为止,我找到了一个查看文件的解决方案,如下所示:
set -f; find ./ -type f \( $(printf -- ' -o - iname *%s*' $(cat patterns.txt) | cut -b4-) \); set +f
我可以根据patterns.txt 文件中的模式找到所有文件,但是如何将它们复制到新文件夹顶部?
【问题讨论】:
-
您是否尝试将结果通过管道传输到 xargs? "| xargs -I {files} cp {files} /path/to/new/folder"
-
是否需要处理子目录中的文件。如果是,您是否希望将所有文件复制到
flat目标,还是必须维护层次结构? (即如果有./a/b/c.txt,应该是(1)target/c.txt,还是(2)target/a/b/c.txt