如何将文件从一个目录复制到另一个目录,以便只复制新文件?

Seb*_*ebi 3 directory file-copy directory-structure

如何将所有新内容从一个目录复制到另一个目录,以便仅从源目录复制新文件(两个目录具有相同的命名树)。例如,这里是目录 A 的布局:

/dirA
     a.php
     b.txt
     subdirA1/
              readme.txt
              config
              source_file1.c

/dirB
     c.php
     subdirA1/
              readme.txt
Run Code Online (Sandbox Code Playgroud)

最后dirB应该在dirA 中包含所有新文件。假设dirA及其子目录中只有新文件。结果应该是两个目录的并集:

/dirB
     a.php
     b.txt
     c.php
     subdirA1/
              readme.txt
              config                  
              source_file1.c
Run Code Online (Sandbox Code Playgroud)

我曾尝试使用 cp -ra:

cp -ra dirA/* dirB/
Run Code Online (Sandbox Code Playgroud)

dirB完全被dirA覆盖。

Xio*_*iov 5

rsync正是为了解决这个问题而设计的:

[$]> rsync -av --ignore-existing dirA/ dirB/
Run Code Online (Sandbox Code Playgroud)

  • 呃,是的,是的,但你必须使用正确的选项! (2认同)