Linux - 如何将多个子目录中相同扩展名的文件复制到一个目录?
我有一个文件夹,里面有很多子文件夹,每个子文件夹里都有一个*.nr
文件。总共有1000个子文件夹,每个子文件夹至少有一个*.nr
文件。有没有什么简单的方法可以把这些*.nr
文件都复制到一个文件夹里呢?
我可以写一个简单的python
脚本来遍历这些文件,但如果有更简单的命令行方法,这样做就显得有点多余了。
我在网上查找,但不太确定该用什么确切的词去搜索。
谢谢!
3 个回答
0
在bash中最简单的方法是:
for F in */*.nr; do cp $F otherdir/ ; done
4
如果你在使用GNU的cp
命令,这样做会更快:
find /path/to/src -name "*.nr" -print0 | xargs -0 cp -t /path/to/dest
把我src
目录下的所有.c
文件复制过来:
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
9
类似这样的东西
find /path/to/src -name "*.nr" -exec cp \{\} /path/to/dest \;