4

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

我可以编写一个快速python脚本来遍历文件,但是如果有一种基于命令行的快速方法来执行此操作,这似乎有点过头了。

我一直在谷歌搜索,但我不确定我应该搜索哪些确切的术语。

谢谢!

4

3 回答 3

9

就像是

find /path/to/src -name "*.nr" -exec cp \{\} /path/to/dest \;
于 2013-03-14T14:34:52.743 回答
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
于 2013-03-14T15:13:35.977 回答
0

bash 中最简单的方法:

for F in */*.nr; do cp $F otherdir/ ; done
于 2013-03-18T05:20:24.610 回答