Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在linux中,如何在不同目录中查找相同扩展名的文件并将其复制到单个目录?_Linux_Bash - Fatal编程技术网

在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