复制文件或目录时如何保持所有权和文件权限完整

前几天我计划将一些数据从我的 Ubuntu 桌面系统备份到外部 USB 驱动器。 将所有数据传输到外部驱动器后,我注意到源和目标上的文件和目录的所有者和权限不同。 但是,我想在两个位置保持现有文件属性(如所有者、组和时间戳等)的完整性。 在快速谷歌搜索并浏览“cp”命令的手册页后,我发现在 Linux 上复制文件和目录时,我们可以保持所有权和文件权限不变。 如果您曾经遇到过这样的情况,这里有一个快速的解决方法。

在 Linux 上复制文件或目录时保持所有权和文件权限不变

cp 命令具有复制文件和目录的选项,但保留原始文件的修改时间、访问时间和模式。

$ cp -rp ~/data /media/sk/sk_seagate/data/

在这里,我将一个名为“data”的文件夹的内容复制到我的外部驱动器。

来自 cp 命令的手册页:

-p     same as --preserve=mode,ownership,timestamps         --preserve[=ATTR_LIST]               preserve the specified attributes (default: mode,ownership,timestamps), if possible               additional attributes: context, links, xattr, all

所以,如果你使用 -p 标志,它将保留原始文件中的所有现有文件属性,例如模式、所有权和时间戳。

“-r” 此处使用标志以递归方式复制目录。 含义 – 它将复制目录及其子目录和文件。

或者,您可以使用 -一个 旗帜。 它包含 -r 标志并保留所有内容,例如链接、xattr、SELinux 属性等。

$ cp -a ~/data /media/sk/sk_seagate/data/

从 cp 命令的手册页:

-a, --archive               same as -dR --preserve=all

要验证文件权限和所有权是否完整,请使用 getfacl 两个位置(即源和目标)上的命令。

$ getfacl ~/data
$ getfacl /media/sk/sk_seagate/data/

如果要将文件从本地系统复制到同一网络中的远程系统,可以使用 “SCP” 命令将文件从一个系统传输到另一个系统,如下所示。

$ scp -rp ~/data [email protected]:/home/senthil/

上面的命令会将名为“data”的内容文件夹从我的本地系统复制到远程系统。 这里,192168.225.22 是我的远程系统的 IP 地址,“senthil”是远程系统的用户名。

使用“getfacl”命令检查两个系统上“data”目录的文件权限和所有权。

首先让我们检查本地系统上“data”目录的文件属性:

$ getfacl data/

样本输出:

# file: data/ # owner: sk # group: sk user::rwx group::rwx other::r-x

接下来,检查远程系统上“data”目录的文件属性。 您可以直接登录远程系统,并通过 ssh 命令查看远程目录的 fie 属性,如下所示。

$ ssh [email protected] getfacl data

样本输出:

[email protected]'s password: # file: data # owner: senthil # group: senthil user::rwx group::rwx other::r-x

正如您在上面的输出中可能注意到的那样,我的远程系统中的所有者和组信息(即 senthil)是不同的。 因为, -p scp 命令的标志不会保留所有权限。

从 scp 命令的手册页:

-p      Preserves modification times, access times, and modes from the original file.

很明显, -p flag 只会保留原始文件的修改时间、访问时间和模式,但 不是所有权. 在这种情况下,您可以在两个系统上创建一个共同的用户名,并尝试上述命令在不同的系统上携带相同的所有权和文件权限。 或者只是在目标系统上使用“chown”命令来更改所有权。

有关详细信息,请参阅 cp 和 scp 命令的手册页。

$ man cp
$ man scp

建议阅读:

  • 如何复制文件并同时更改所有权、权限

希望这可以帮助。

感谢您的光临!

帮助我们帮助您:

  • 订阅我们的电子邮件通讯: 立即注册
  • 支持 OSTechNix: 通过贝宝捐款
  • 下载免费的电子书和视频: TradePub 上的 OSTechNix
  • 联系我们: 红迪网 | Facebook | 推特 | 领英 | RSS订阅

祝你有美好的一天!!

文件属性文件权限LinuxLinux命令所有权