如何使用使用vfat文件系统的usb棒将文件/文件夹从ext4文件系统上的ubuntu计算机复制到也位于ext4文件系统上的另一台ubuntu计算机,而不会丢失文件权限?
我从源计算机尝试了基本的ctrl-c,然后从ctrl-v到了usb,然后从usb的ctrl-c到了目标计算机,再没有ctrl-v了,都没有文件/文件夹权限保持完整。
rsync
如我所建议,为什么不呢?
如何使用使用vfat文件系统的usb棒将文件/文件夹从ext4文件系统上的ubuntu计算机复制到也位于ext4文件系统上的另一台ubuntu计算机,而不会丢失文件权限?
我从源计算机尝试了基本的ctrl-c,然后从ctrl-v到了usb,然后从usb的ctrl-c到了目标计算机,再没有ctrl-v了,都没有文件/文件夹权限保持完整。
rsync
如我所建议,为什么不呢?
Answers:
您可以创建源的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
)可能更实用。
-p
标志tar
以确保保留权限。
-p
并不需要,请参阅我对@mikewhatever答案的评论。在-z
还没有在必要时执行解压缩,因为tar
能够弄清楚压缩本身的类型,除非它是一个旧版本。在命令中包含标志不会造成伤害,很难。
-z
在压缩或解压缩时(或-j
使用bzip2时),我也会始终明确标出该标志。
tar
遭受一个非常严重的问题-它在超过100个字符的路径上阻塞。
您可以尝试rsync
使用-a
flag来在复制时保留所有权限。我不知道有一个更简单的解决方案,但过去我曾将其用于特定目的。
Rsync为重复复制,更新文件夹等提供了出色的支持,同时保持了极快的速度。
rsync
(喜欢它,实际上是:-]),但是如果目标设备是vfat格式的,则ext4文件权限将丢失,如oshirowanen所述。tar
在这种情况下,解决方案更好。
我认为先去皮然后再去皮应该在文件和目录上都起作用。
到焦油:
tar cvpfz /target.tar.gz /source/
解压:
tar xvpfz /source/
该p
标志代表--preserve-permissions
。
您应该看到man tar
更多信息。
-p
并不需要-tar默认情况下会保留权限,至少在用户拥有要归档/提取的文件时。
vfat
不支持UNIX文件系统权限。如果要保留它们,则需要将它们存储在tarball或类似的文件中。