如何让 OS X 中的“cp”不删除文件?

如何让 OS X 中的“cp”不删除文件?

这是描述此情况的最佳方式:

dirA
   dir1
      file1.txt
      file3.txt
dirB
   dir1
      file1.txt
      file2.txt

我想将 dirB 的内容复制到 dirA 中。 cp -R dirB/* dirA将删除dir1并复制文件,导致:

dirA
   dir1
      file1.txt
      file2.txt

但我想合并它们(就像在 Windows 上一样)并最终得到:

dirA
   dir1
      file1.txt
      file2.txt
      file3.txt

有什么建议吗?我试过了ditto,但似乎忽略了递归部分,只是转储了顶层文件夹中的所有文件。

答案1

不要使用 cp。使用同步

Apple 开发者链接

答案2

cp不是删除文件。

答案3

使用-icp 选项

     -i    Cause cp to write a prompt to the standard error output before
           copying a file that would overwrite an existing file.  If the
           response from the standard input begins with the character `y'
           or `Y', the file copy is attempted.  (The -i option overrides
           any previous -n option.)

答案4

dirA dir1 文件1.txt 文件3.txt dirB dir1 文件1.txt 文件2.txt

我会这样做:

$ cd dirA
$ tar cf - | (cd .../dirB ; tar xf -)

文件会被覆盖,目录不会被覆盖。

相关内容