从一个文件系统复制到另一个文件系统,同时保留文件属性

从一个文件系统复制到另一个文件系统,同时保留文件属性

我正在尝试将一个文件系统的内容复制到另一个文件系统,同时保留文件所有权和权限。我目前正在尝试

sudo cp -pR /media/myself/fs1/* /media/myself/fs2/

复制工作仍在进行中,但我看到目标上的第一个顶级目录属于根目录,而原始目录属于我的用户帐户。

(实际上fs1是来自另一台计算机,但用户 ID 恰好匹配。)

fs1是 ext4,而fs2是 btrfs。两者都是外部硬盘,插入后 Ubuntu 会自动挂载。

如何确保所有数字所有者和组 ID(包括在用于复制作业的工作站上未找到的 ID)以及权限都得到保留?

答案1

作为一种解决方法,由于我在桌面系统上,我现在使用 Unison(带有 sudo)进行复制,并使用以下配置文件:

label = Disk content migration
root = /media/myself/fs1
root = /media/myself/fs2
owner = true
numericids = true
group = true
dontchmod = false
noupdate = /media/myself/fs1
perms = -1
times = true

ownergroup分别是同步所有者和组的选项。numericids告诉 Unison 使用数字 ID 而不是用户名。

dontchmodperms指示 Unison 同步所有权限,包括 setuid/setgid(这是这里所需要的,因为我正在准备具有不同文件系统的替换磁盘)。

times告诉 Unison 同步时间戳。

noupdate与原始卷的路径一起可防止 Unison 意外修改原始文件系统。

相关内容