Greg Mattes Asked: 2009-05-13 16:14:47 +0800 CST2009-05-13 16:14:47 +0800 CST 2009-05-13 16:14:47 +0800 CST Linux中的命令行递归/深度目录复制? 772 在大多数情况下,在 Linux 中制作递归/深度目录副本的好方法是什么?我用过简单的东西,比如cp -R相当精细的cpio咒语。是否有任何显着的优势或劣势使您更喜欢其中一个?你最常使用哪一个? linux filesystems shell 4 个回答 Voted Best Answer Gareth 2009-05-13T16:36:16+08:002009-05-13T16:36:16+08:00 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,同时保留符号链接和文件/目录“模式”“所有权”和“时间戳”。 Zoredache 2009-05-13T16:23:38+08:002009-05-13T16:23:38+08:00 我最常使用像“cd $srcdir ; tar -c . | tar -C $destdir -x”这样的命令。但我也使用 rsync -a $src $dst。 tar 解决方案的最大优势在于,它是我多年前必须在没有 cpio、rsync 或递归复制的 cp 的系统上使用的解决方案。焦油几乎无处不在。它卡在我的头上,因为我经常使用它,可能还有更优雅的方式。它似乎总是能正确完成工作,所以我从来没有真正努力寻找替代品。 trent 2009-05-13T20:35:17+08:002009-05-13T20:35:17+08:00 看一下rsync ...我喜欢它,因为在保持两个目录最新时复制的数据更少...它也可以远程工作。最简单的形式 rsync -a /src /dest Amandasaurus 2010-03-06T01:46:13+08:002010-03-06T01:46:13+08:00 rsync是一个很棒的工具。它是传输数据的瑞士军刀。它是如此简单而强大的工具。一旦你开始使用它,你就会上瘾。
所以回答你的问题:
将所有内容从目录 /foo 递归复制到目录 /bar,同时保留符号链接和文件/目录“模式”“所有权”和“时间戳”。
我最常使用像“cd $srcdir ; tar -c . | tar -C $destdir -x”这样的命令。但我也使用 rsync -a $src $dst。
tar 解决方案的最大优势在于,它是我多年前必须在没有 cpio、rsync 或递归复制的 cp 的系统上使用的解决方案。焦油几乎无处不在。它卡在我的头上,因为我经常使用它,可能还有更优雅的方式。它似乎总是能正确完成工作,所以我从来没有真正努力寻找替代品。
看一下rsync ...我喜欢它,因为在保持两个目录最新时复制的数据更少...它也可以远程工作。最简单的形式 rsync -a /src /dest
rsync
是一个很棒的工具。它是传输数据的瑞士军刀。它是如此简单而强大的工具。一旦你开始使用它,你就会上瘾。