我有很多这样的目录:
$ ls
1_true 1_false 2_true 2_false 3_true 3_false ...
我想将“*_true/”中的文件复制到其他目录。
当我运行如下命令时
find . -name "*_true" -exec cp "{}"/* "../out_true" ";"
这给了我如下错误信息:
cp: cannot stat './1_true/*': No such file or directory
cp: cannot stat './2_true/*': No such file or directory
cp: cannot stat './3_true/*': No such file or directory
...
如何修复此错误?谢谢!
注意:我的“真实”目录数量超过 100000
答案1
答案2
找到答案,使用xargs
而不是-exec
find . -name "*_true" -print0 | xargs --null -I{} sh -c 'cp "$1"/* "../out_true"' -- {}