Linux下的命令行recursion/深层目录复制?

在大多数情况下,在Linux中制作recursion/深层目录拷贝是一种很好的通用方法? 我使用了简单的东西,如cp -R以及相当复杂的cpio咒语。 是否有任何重要的优点或缺点,导致你更喜欢一个优于另一个? 你最常使用哪一个?

 NAME cp - copy files and directories -a, --archive same as -dpR -d same as --no-dereference --preserve=links -p same as --preserve=mode,ownership,timestamps -R, -r, --recursive copy directories recursively 

所以回答你的问题:

 cp -a /foo /bar 

将所有内容从目录/ foorecursion复制到目录/ bar,同时保留符号链接和文件/目录“模式”“所有权”和“时间戳”。

我经常使用“cd $ srcdir; tar -c。| tar -C $ destdir -x”这样的命令。 但是我也使用rsync -a $ src $ dst。

tar解决scheme最大的优势在于它是多年前我们不得不在系统上使用的那种没有cpio,rsync或cp的recursion复制。 焦油几乎无处不在。 它被困在我的头上,因为我用了很多,可能有更优雅的方式。 它似乎总是正确地完成工作,所以我从来没有真的很难find替代品。

看看一个rsync …我喜欢它,因为在保持两个目录保持最新的情况下复制的数据较less…它也可以工作在远程。 以其最简单的formsrsync -a / src / dest

rsync是一个伟大的工具。 这是转移数据的瑞士军刀。 这是一个简单而强大的工具。 一旦你开始使用它,你会被吸引。