如何在OS X上使用ditto像在Linux上的cp -a一样工作
时间:2020-03-06 15:00:10 来源:igfitidea点击:
我是Linux专家,我习惯于使用cp -a复制目录树。 OS X在cp
上没有-a
选项,但是有ditto
命令。我正在阅读"同上"中的那个人,但是我应该特别注意些什么吗?
解决方案
正如j04t指出的那样,应该是cp -pR
在OS X上,我们可以
cp -dRL src target
cp在新版本的OS X中保留资源(发生这种情况时它是10.3吗?)
嘿d有点像颠倒的p,对;)
从Linux cp(1):
-a, --archive same as -dpR
这很令人困惑,因为-d似乎等同于-p。无论如何,OSX具有-p和-R,因此我们可以使用它。
我个人使用rsync -a
(或者任何需要的rsync
参数)。我的两个原因是:我已经知道如何做到这一点,并且我需要我的脚本可以在Linux / BSD / Solaris上移植。在某些文件系统中," rsync"比" cp"更有效。
抱歉,这不是直接的答案,我在BSD上使用了ditto
,但没有任何手册页上的陷阱。
根据cp手册页cp -a与cp -dpR相同,
-p = preserve mode,ownership,timestamps -R = recursive -d = no dereference and preserve links
OS X等效为
cp -pPR
-p = preserve -R = recursive -P = no symbolic links are followed -- can be added but this is the default behavior
唯一缺少的是-d,我认为这是默认行为,但我不是很肯定。
我从来没有弄过同上
编辑-@ SoloBold
-L遵循符号链接。 -p不遵循符号链接。
OS X(至少10.4)没有-d选项。
那是一个巨大的差异。
同上和cp之间的区别是,当source是目录时,cp在目标上创建一个具有该名称的目录,但同上仅复制内容。谨防!