Linux 中的命令行递归/深层目录复制?

Linux 中的命令行递归/深层目录复制?

在 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是一款很棒的工具。它是数据传输的瑞士军刀。它是一款简单而强大的工具。一旦你开始使用它,你就会上瘾。

相关内容