我的安装在 / 中有 /home 文件夹。我想添加一个单独的 /home 分区,所以我在不同的驱动器上创建了一个小的备份分区,将其添加到 /etc/fstab,并用于rsync
将-aXS
我的旧 /home 文件夹移动到这个新分区。然后我使用 /home 分区进行了全新安装。现在我想将我的文件从旧的 /home 文件夹移回新的 /home 目录。做这个的最好方式是什么?
我尝试了什么:sudo rsync -aXS /home_backup/. /new_home_partition/.
根据本指南
这将旧的 /home 文件夹本身复制到 /home 分区中(即它创建了 /home/home),这不是我想要的。我想我可以运行相同的命令,但是在备份文件夹中的子文件夹上而不是在文件夹本身上。这是最好的方法吗?
我看到了这个类似的问题,但据我了解,cp
不会保留权限和链接等信息。我也看到了这个问题,但我不知道如何使用 tarball(而且我不肯定 OP 的情况是否相同)。任何帮助将不胜感激,因为我绝不是专家!
PS 在将备份文件复制到其中之前,从新 /home 分区中删除所有文件的最佳命令是什么?
编辑:看起来我能够解决这个问题,但我仍然不知道发生了什么(在下面添加了评论)。
rsync
是制作目录结构的相同副本的合适工具。要使用 保留权限rsync
,请使用该a
选项。-H
使用选项,-A
和可以更完整地保留原始属性-X
(查看man rsync
它们的作用)。-a
出于性能原因,这些不包含在选项中。如果需要,您可以添加它们。例如,如果您广泛使用硬链接,您将需要添加-H
选项以将源中的硬链接项目作为一个文件保存在目标中。