cp -u 在 Mac 上是非法的。有什么替代方案吗?

cp -u 在 Mac 上是非法的。有什么替代方案吗?

我有一台 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 风格的帮助。

相关内容