为什么我的备份和恢复的文件现在在 22.04 Jammy Jellyfish 上全部设置为 +x(文件模式 755,以前是 644)?

为什么我的备份和恢复的文件现在在 22.04 Jammy Jellyfish 上全部设置为 +x(文件模式 755,以前是 644)?

背景

由于我对更新 Ubuntu 安装存在误解,导致我从 21.04 更新到 22.04 失败。我询问了这里发生了什么

幸运的是,在全新/完整安装 22.04 后,我能够备份并恢复我的数据。

我只是将一些文件从旧的 21.04 安装复制到了一个大型外部 USB 驱动器上。

为什么文件现在具有可执行属性?

现在,我发现我从 USB 驱动器复制过来的文件似乎有 +x (filemod 755),而以前它们只有 (filemode 644 -- 不可执行)。复制过来的目录也有 +x。

为什么会发生这种情况?这是 Linux 安装中预期会出现的情况吗?当我复制这些文件时,我需要做些什么来缓解这种情况吗?

有没有快速重置为 644 的方法?

有没有快速的方法将它们重置为 -x?

官方备份/恢复也会导致问题

Deja Dup 备份 deja dup 备份

我有一些使用实际的 Ubuntu 备份程序备份和恢复的目录,它们也被设置为 755,所以它们不仅仅是我复制到 USB 驱动器的文件。

答案1

切勿将 Linux 文件复制到 NTFS。NTFS 以特定设置挂载,并将所有文件更改为这些设置。如果以此方式挂载,它将添加可执行权限。如果您想这样做,您需要使用tar并将其存储在 NTFS 上。

当您使用cp将文件复制到 EXT 时,您需要使用-p保留文件的模式、所有权和时间戳。如果目标归其他人所有,cp则会出现错误。

如果您使用tar,则默认情况下,它会在创建 tar 文件时保留文件的模式、所有权和时间戳。如果您使用其他所有者提取它,提取将出错,您需要使用 root(/sudo) 来提取该 tar。

有没有快速的方法将它们重置为 -x?

这取决于... 是否没有可执行文件?如果是的话,这将...

chmod -R -x+X .

在哪里 ...

-R = recursive
-x = remove executable flag
+X = set executable flag if it is a directory

相关内容