我想知道OSX上cp和ditto命令之间的确切区别是什么?

区分这两个命令的要点是什么?

最佳答案

手册页中的标题实际上描述了差异:


cp-复制文件和目录
同上-复制目录层次结构,创建和提取档案


手册页中的更多信息


cp



cp [OPTION]... [-T] SOURCE DEST

cp [OPTION]... SOURCE... DIRECTORY

cp [OPTION]... -t DIRECTORY SOURCE...


将SOURCE复制到DEST,或将多个SOURCE复制到DIRECTORY。



同上



ditto [-v] [-V] [-X] [<options>] src ... dst_directory.

ditto [-v] [-V] [<options>] src_file dst_file

ditto -c [-z | -j | -k] [-v] [-V] [-X] [<options>] src dst_archive

ditto -x [-z | -j | -k] [-v] [-V] [<options>] src_archive ...
       dst_directory


第一种形式,同上复制一个或多个源文件或目录
到目标目录。如果目标目录不存在
它将在复制第一个源之前创建。如果目的地
目录已经存在,然后将源目录与
目的地的先前内容。

在第二种形式中,ditto将文件复制到提供的dst_file路径-
名称。

接下来的两种形式反映了ditto创建和提取ar-
韭菜。这些档案可以是CPIO格式(Unix首选)
内容)或PKZip(用于Windows兼容性)。 src_archive(和
dst_archive)可以是单个字符“-”,导致同上读取
(写入)从stdin(或分别到stdout)的存档数据。

同上跟随作为参数提供的符号链接,但不遵循
遍历源或目标层次结构的任何链接。同上
覆盖目标中的现有文件,符号链接和设备
从源复制这些文件时。结果文件,链接和
设备将具有相同的模式,访问时间,修改时间,所有者,
并将其作为复制它们的源项目分组。管,袜子-
ets,以及以.nfs或.afpDeleted开头的文件
忽略了。同上不修改模式,所有者,组,扩展
属性或目标中现有目录的ACL。档案
符号链接不能覆盖目录,反之亦然。

同上可用于在复制过程中“变薄”通用Mach-O二进制文件。
同上也可以根据BOM表的内容选择性地复制文件
(“物料清单”)文件。同上保留文件硬链接(但不保留
目录硬链接)存在于源目录中并保留
以超级用户身份运行时,setuid和setgid模式。

同上将保留资源派生和HFS元数据信息,当
除非另有说明,否则请使用--norsrc复制。同样,同上
将保留扩展属性和访问控制列表(ACL),除非
--noextattr或--noacl被传递。 DITTONORSRC可以在以下环境中设置:
ment作为命令行中--norsrc --noextattr --noacl的别名。

07-26 03:51