如何准确复制文件夹

Top*_*der 30 unix linux bash ubuntu

我正在尝试复制我正在编程的设备的文件系统.经过这么多时间试图找出我安装的文件系统无法正常工作的原因后,我发现cp没有完成任务.我曾经du -s检查原始文件系统的大小和我复制的文件系统的大小cp -r,因为事实证明它们相差大约150个字节.

有些东西告诉我,符号链接或某种内核对象没有被正确复制.

是否可以准确复制文件夹/文件系统?如果是这样我怎么去呢?

Gil*_*not 59

尝试这种直截了当的方式:

cp -a src target
Run Code Online (Sandbox Code Playgroud)

man cp

    -a, --archive
           same as -dR --preserve=all
Run Code Online (Sandbox Code Playgroud)

它保留权利,符号链接......

  • 如果您在有助于查看复制稳定进行的上下文中执行此操作,则还可以添加 -v 标志以将其操作的运行日志打印到标准输出。 (3认同)

dam*_*ois 7

另一个流行的选择是使用tar c source | (cd target && tar x ). 请参阅这篇 linuxdevcenter.com 文章。


Che*_*ana 7

在这里,我尝试了Linux中的所有代码.似乎@seanmcl提出的Rsync是正确的,而其他人未能保留所有者和/或某些特殊文件拒绝结果.确切的代码是:

$ sudo rsync -aczvAXHS --progress /var/www/html /var/www/backup
Run Code Online (Sandbox Code Playgroud)

只记得只使用目录名,而不是目标名称末尾加上斜杠(/)或通配符(/*),否则不会复制源正下方的隐藏文件.

  • 您需要解释以下参数: -a 存档模式;等于 -rlptgoD(递归、符号链接、权限、时间、组、所有者、设备和特殊项)、-c 基于校验和跳过、-z 在传输过程中压缩文件数据、-v 详细、-A 保留 ACL、-X 保留扩展属性,-H 保留硬链接,-S 有效处理稀疏文件 (3认同)