当(且仅当)目标不存在时,我想复制单个文件。源文件很少更改,可能每月一次。目的地几乎不存在。
-n
和选项之间有什么区别吗-u
? (或两者!)
cp
直接从 调用crond
。没有cp
使用其他选项。
同一 cron 作业同时在多台机器上调用,从相同的源读取数据并写入相同的目标(两者都在共享的 GFS 全局文件系统上)。此后不久,目标文件将被另一个进程移动,因此它唯一可能存在的时间是在 cron 作业在多个节点上同时执行的竞赛期间。
哪个会更有效率? :
cp -n source dest
cp -u source dest
cp -nu source dest
cp -pu source dest
我目前倾向于简单的-n
替代方案。
答案1
-n
和结合起来没有任何意义-u
。
-n
如果您不想覆盖现有文件,请使用此选项。
-u
如果您不想覆盖较新的文件,请使用。
两者不同的情况是目标文件比源文件旧。考虑一下您希望在这种情况下发生什么,并相应地编写您的命令。
我预计这-n
比-u
- 但效果不太可能是可衡量的。
(上面的“旧”、“新”等都是指时间文件的数量。