【问题】我想搜索某个文件夹下的所有.c文件,并将其拷贝到另外一个目录下。
【情景设定】当前目录下有若干文件,利用tree 命令如下图:
.
├── a.c
├── b.c
├── cat
│ ├── 1.asm
│ ├── 2.asm
│ ├── x.c
│ └── y.c
├── dog
├── m.asm
└── n.asm
要求把所有.c文件拷贝到dog目录下。
【解决方法】
find ./ -name "*.c" | xargs -i cp {} ./dog/
或者:
find ./ -name "*.c" -exec cp '{}' ./dog/ \;
注意: ./dog/ 和 \; 之间有个空格。
这种用法可以灵活变通,比如删除所有的.c文件。
find ./ -name "*.c" -exec rm '{}' \;