复制文件而不丢失文件/文件夹权限

复制文件而不丢失文件/文件夹权限

如何使用采用 vfat 文件系统的 USB 驱动器将文件/文件夹从采用 ext4 文件系统的 ubuntu 计算机复制到另一台同样采用 ext4 文件系统的 ubuntu 计算机,而不会丢失文件权限?

我已尝试过在源计算机中使用基本的 ctrl-c,然后按 ctrl-v 到 usb,再从 usb 中使用 ctrl-c,然后按 ctrl-v 到目标计算机,但所有文件/文件夹权限均未保持完整。

答案1

您可以制作源代码的 tar 存档,使用 USB 驱动器将其复制到另一台计算机,然后在那里提取。Tar 保留文件权限。

1 – 在源计算机上:

cd /path/to/folder/to/copy
tar cvpzf put_your_name_here.tar.gz .

2 - 复制put_your_name_here.tar.gz到 USB 驱动器,然后复制到另一台计算机

3 – 在目标计算机上:

cd /path/to/destination/folder
tar xpvzf put_your_name_here.tar.gz

tar将重新创建存档文件夹结构并且所有权限均保持完整。

这些命令将归档内容源文件夹,然后将其提取到目标文件夹中。如果您想复制文件夹本身,则应在步骤 1 中执行以下操作:

cd /path/to/parent/folder
tar cvpzf put_your_name_here.tar.gz folder_to_copy

相同的机制可以用于单个文件。


如果您可以使用 从一台计算机连接到另一台计算机ssh,那么@siddharthart 答案(rsync) 可能更实用。

答案2

你可以尝试rsync使用-a标志在复制时保留所有权限。我不知道有更简单的解决方案,但我过去曾出于某种目的使用过它。

Rsync 对重复复制、更新文件夹等提供了出色的支持,同时保持了极快的速度。

答案3

我认为,对文件和目录进行去皮和解皮操作应该都可以。

至 ta​​r:

tar cvpfz /target.tar.gz /source/

解压:

tar xvpfz /source/

p面旗帜代表--preserve-permissions

您应该查看man tar更多信息。

相关内容