Linux - 如何将位于多个子目录中的相同扩展名的文件直接复制到一个子目录中?

时间:2013-03-14 14:30:58

标签: python linux bash csh

我有一个包含许多子目录的文件夹,每个子目录中都有一个*.nr文件。有1000个子目录,每个子目录至少包含一个*.nr文件。有没有快速的方法将所有这些*.nr文件复制到一个目录中?

我可以编写一个快速的python脚本来迭代文件,但如果有一个基于命令行的快速方法,这似乎有点过头了。

我一直在谷歌搜索,但我不确定我应该用谷歌搜索的具体条款。

谢谢!

3 个答案:

答案 0 :(得分:9)

类似

find /path/to/src -name "*.nr" -exec cp \{\} /path/to/dest \;

答案 1 :(得分:4)

如果您使用的是具有GNU cp的系统,则可以更快地完成此操作:

find /path/to/src -name "*.nr" -print0 | xargs -0 cp -t /path/to/dest


复制.c目录下的所有src个文件:

time find ~/src -name "*.c" -exec cp \{\} ~/src/Cfound/ \;
. . .
real    0m1.838s
user    0m9.530s
sys     0m1.110s

time find . -name "*.c" -print0 | xargs -0 cp -t ./Cfound/
. . .
real    0m0.057s
user    0m0.010s
sys     0m0.060s

答案 2 :(得分:0)

bash中最简单的方法:

for F in */*.nr; do cp $F otherdir/ ; done