bash脚本 - 在2个目录上递归迭代

时间:2017-04-26 19:58:33

标签: bash recursion copy

我需要一种方法来递归遍历目录并将内容复制到同一目录结构之后的另一个目录中。 例如,我有以下内容:

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:不会覆盖刚刚创建的” 感谢您对此的任何见解。

2 个答案:

答案 0 :(得分:1)

rsync命令非常适合这个。

这样的事情可能达到你想要的效果:

rsync -av src1/ src2/

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

答案 1 :(得分:1)

尝试rsync -a两个文件夹