![Linux 中的命令行递归/深层目录复制?](https://linux22.com/image/794751/Linux%20%E4%B8%AD%E7%9A%84%E5%91%BD%E4%BB%A4%E8%A1%8C%E9%80%92%E5%BD%92%2F%E6%B7%B1%E5%B1%82%E7%9B%AE%E5%BD%95%E5%A4%8D%E5%88%B6%EF%BC%9F.png)
在 Linux 中,在大多数情况下,进行递归/深层目录复制的良好通用方法是什么?我使用过简单的方法,cp -R
以及相当复杂的cpio
咒语。有什么显著的优点或缺点让你更喜欢其中一个而不是另一个?你最常使用哪一个?
答案1
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
将所有内容从目录 /foo 递归复制到目录 /bar,同时保留符号链接和文件/目录“模式”、“所有权”和“时间戳”。
答案2
我使用类似的命令“cd $srcdir;tar -c。|tar -C $destdir -x”最常用。但我还使用 rsync -a $src $dst。
tar 解决方案的最大优势在于,多年前,在没有 cpio、rsync 或可进行递归复制的 cp 的系统上,我不得不使用它。tar 几乎无处不在。它让我念念不忘,因为我经常使用它,可能还有更优雅的方法。它似乎总能正确完成工作,所以我从来没有费力寻找替代品。
答案3
看一下 rsync ... 我喜欢它,因为在保持两个目录更新时,复制的数据较少... 它也可以远程工作。 最简单的形式是 rsync -a /src /dest
答案4
rsync
是一款很棒的工具。它是数据传输的瑞士军刀。它是一款简单而强大的工具。一旦你开始使用它,你就会上瘾。