我想cp一个目录,但我不想覆盖任何现有的文件,即使它们比复制的文件更老。我希望它完全非交互式,因为这将是Crontab Bash脚本的一部分。什么好主意吗?
当前回答
这对我很有用 是n | cp -i SRC dest
其他回答
考虑使用rsync。
rsync -a -v --ignore-existing src dst
根据注释,rsync -a -v src dst是不正确的,因为它将更新现有的文件。
某些版本的cp没有——no-clobber选项。在这种情况下:
echo n | cp -vipr src/* dst
cp -n
是你想要的。请参阅手册页。
这将在RedHat工作:
false | cp -i source destination 2>/dev/null
更新和不覆盖是另一回事。
摘自手册页:
-n, --no-clobber
do not overwrite an existing file (overrides a previous -i option)
例子:
cp -n myoldfile.txt mycopiedfile.txt