2017-04-26 43 views
1

我需要一种递归迭代遍历目录并将内容复制到遵循相同目录结构的另一个目录的方法。 举例来说,我有以下:bash脚本 - 在2个目录上递归迭代

src1/ 
    dir1/ 
     sub-dir1.1/ 
     file1.1 
    dir2/ 
     sub-dir2.1/ 
    file1 

现在,我在别处另一个目录,里面有一个类似的结构之上,但用更少/更多文件+目录。

src2/ 
    dir1/ 
     sub-dir1.1/ 
     file1.1 
     file1.2 
    dir2/ 
    dir3/ 
    file4 

我需要将所有内容从src1复制到src2,包括dir1和dir2下的所有子目录。有没有办法做,而不是深入到N个子目录下的每个文件并复制文件? 我试过使用“cp -r”,但它给了我一个“cp:不会覆盖刚刚创建的” 感谢您对此的深入了解。

回答

1

rsync命令非常适合这一点。

像这样的事情可能实现你想要的:

rsync -av src1/ src2/ 

尝试使用-n标志开始在“空转”或测试模式下运行它。这将显示它将复制哪些文件而不实际进行任何更改。

+0

谢谢。这工作完美。 – user3723491

1

尝试rsync -a ing两个文件夹

+0

谢谢。这工作完美。 – user3723491