在linux中,如何在不同目录中查找相同扩展名的文件并将其复制到单个目录?
那么,如何查找和复制所有文件在linux中,如何在不同目录中查找相同扩展名的文件并将其复制到单个目录?,linux,bash,Linux,Bash,那么,如何查找和复制所有文件 *.a 都在, ~/DIR{1,2,3,...} 到 在bash shell中: cp ~/DIR*/*.a ~/tmp/foo 假设您的意思是从某个源位置递归复制.a类型的所有内容。 尚未验证,但这应该可以做到 find <root-of-search> -type f -name '*.a' -exec cp {} /tmp/foo \; find-type f-name'*.a'-exec cp{}/tmp/foo\; 替换为要从中
*.a
都在,
~/DIR{1,2,3,...}
到
在bash shell中:
cp ~/DIR*/*.a ~/tmp/foo
假设您的意思是从某个源位置递归复制.a类型的所有内容。 尚未验证,但这应该可以做到
find <root-of-search> -type f -name '*.a' -exec cp {} /tmp/foo \;
find-type f-name'*.a'-exec cp{}/tmp/foo\;
替换为要从中搜索的位置的顶部。您可能需要在*.a周围加引号,并且可能需要将结束分号换成转义符,将其放在单引号中,而不是反斜杠。$find-键入f-name*.mkv-exec cp{}../disk0/public/foo-find:path必须位于expression:foo.mkv之前,这可能有助于查看“find”是否按预期工作;如果用ls-l{}替换-exec右边的所有内容;它应该只列出它识别的文件。对不起。我没有正确阅读你的帖子。我照你说的做了,它似乎起作用了……起作用了。谢谢这似乎在MacOSX上对我有效。我在bash中也执行了相同的命令,并且成功了。
find ~/DIR{1,2,...} -name *.a print0 | xargs -i -0 cp '{}' ~/tmp/foo
find ~/DIR{1,2,...} -name *.a print0 | xargs -i -0 cp '{}' ~/tmp/foo