OSX上的cp和ditto命令有什么区别?

时间:2016-12-05 12:12:15

标签: macos

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

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

1 个答案:

答案 0 :(得分:4)

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

  • 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
     

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

     

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

     

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

     

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

     

同上可以用来&#34;瘦&#34;复制期间的通用Mach-O二进制文件。        同上还可以根据BOM的内容有选择地复制文件        (&#34;物料清单&#34;)文件。同上保留文件硬链接(但不是        目录硬链接)存在于源目录和保留中        以超级用户身份运行时的setuid和setgid模式。

     

同上,将保留资源分叉和HFS元数据信息        复制,除非使用--norsrc指示。同样,同上        将保留扩展属性和访问控制列表(ACL),除非        传递--noextattr或--noacl。 DITTONORSRC可以设置在环境中        在命令行中作为--norsrc --noextattr --noacl的别名。