我有一台 MacbookPro Lion,我尝试存档我的文件,如果源文件比目标文件新,则尝试复制并覆盖。我尝试了以下命令
cp -u source destination
但它说 -u 是非法的。我也没有在 中找到 --update 或 -u man cp
。
你能帮帮我吗,在这种情况下我该怎么办?
[我已将问题从 SO 移到这里,请随时再次回答。我希望这是处理此问题的正确方法]
答案1
可能最简单的解决方案是使用同步。它是一个备份应用程序,可以完成该cp -u
做的工作(甚至更多)。
基本用法如下:
rsync -u source destination
但是,你确实应该查看手册页,因为其中有许多有用的选项。
答案2
您可以使用以下-nt
条件:
[[ source/$file -nt destination/$file ]] && cp source/$file destination/$file
只需对所有文件运行此操作(通过循环或通过find
)。
答案3
我已经通过 MacPorts 安装了 GNU Coreutils
sudo ports install coreutils findutils
findutils 不是必需的,但是他们也建议安装它。
我遵循了 Keith Thompson 的想法(赞!)。效果非常好,“高级”复制命令现在是:
/opt/local/libexec/gnubin/cp
它没有手册页,但是有一个--help
带有选项的详细的、man 风格的帮助。