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