前段时间,我曾将一个包含 C 语言源代码文件和一些 shell 脚本的目录从我的 Ubuntu 12.10 64 位笔记本电脑复制到便携式硬盘上。我是在 root 登录下复制的。今天,当我在 root 登录下将其从便携式磁盘复制回同一台笔记本电脑时,我发现文件权限已从原来的 755 更改为 400,这导致一些脚本失败。我应该如何复制到硬盘,以便目录及其内容保留权限?
答案1
您的外部驱动器使用的是 FAT32 或 NTFS,它们不支持权限。您需要在外部驱动器上切换到与 unix 兼容的格式,或者可以使用tar
(或 gui 存档实用程序)在存档存储在此类磁盘上时保留其中的正确权限。
答案2
也许事实并非如此,但它可能取决于文件系统:例如 FAT32 格式的驱动器不支持文件权限。看看这个问题:如何更改 FAT32 驱动器上的文件权限?。
除此之外,我会看看 rsync 手册。
rsync -aPv what where
-a 表示存档模式,这通常是您想要的:保留权限/所有者/组、递归行为以及相当多的其他人员。(-P 和 -v 增加了详细程度并让您看得更清楚)
具体来说,-p 标志将保留您的权限。