mkdir zipFiles
find . -name '*.zip' -exec cp {} zipFiles/ \;
Error:
cp: ‘./zipFiles/status.zip’ and ‘zipFiles/status.zip’ are the same file
我尝试使用这些命令来强制复制以覆盖现有文件,但是它们都不起作用;
find . -name '*.zip' -exec cp {} zipFiles/ \;
find . -name '*.zip' -exec cp -f {} zipFiles/ \;
find . -name '*.zip' -exec cp -rf {} zipFiles/ \;
find . -name '*.zip' -exec cp {} -rf zipFiles/ \;
答案 0 :(得分:2)
您不希望find
搜索zipFiles
。一种方法是
find . -name '*.zip' \( ! -path '*/zipFiles/*.zip' \) -exec cp {} zipFiles/ \;
要加快处理速度,请使用-exec ... +
让cp
一次复制尽可能多的文件。要么
find . ... -exec sh -c 'cp "$@" zipFiles' _ {} +
或者,如果您使用的是GNU cp
,
find . ... -exec cp -t zipFiles {} +
答案 1 :(得分:0)
您可以使用rsync命令:
rsync源目标
或
rsync --force源目标