如何在Linux上将权限从一个文件复制到另一个文件

时间:2020-01-09 14:16:59  来源:igfitidea点击:

如何从Linux上的另一个文件复制或克隆文件所有权和权限。

bash命令行选项是否可以从Linux操作系统上的另一个文件克隆该文件的用户,组所有权和权限?
要设置文件所有者和组,请使用chown命令。
要更改文件模式,请使用chmod命令(权限)。
这两个命令都接受将另一个文件用作引用的选项,称为RFILE。

从Linux上的另一个文件或目录克隆权限的语法

语法如下,使用RFILEs模式而不是MODE值:

chmod --reference=RRFILE FILE
chmod [options] --reference=RRFILE FILE

示例:复制文件权限,但不复制文件

让我们列出两个文件:

ls -l install58.iso xenial-server-amd64.iso

输出示例:

-rw-rw-rw- 1 libvirt-qemu kvm 230862848 Aug 16  2014 install58.iso
-rw-r--r-- 1 libvirt-qemu kvm 786432000 Mar 14 02:01 xenial-server-amd64.iso

要将install58.iso文件权限复制到xenial-server-amd64.iso,请执行:

chmod --reference=install58.iso xenial-server-amd64.iso

验证一下:

ls -l install58.iso xenial-server-amd64.iso

输出示例:

-rw-rw-rw- 1 libvirt-qemu kvm 230862848 Aug 16  2014 install58.iso
-rw-rw-rw- 1 libvirt-qemu kvm 786432000 Mar 14 02:01 xenial-server-amd64.iso

您也可以指定多个文件:

chmod --reference=file.txt dest1.txt dest2.txt dest3.conf

您可以组合并使用find和xargs,如下所示:

find /path/to/dest/ -type f -print0 | xargs -O -I {} chmod --reference=/path/to/rfile.txt {}

从Linux上的另一个文件或目录克隆所有权的语法

使用RRFILEs所有者和组而不是指定OWNER:GROUP值的语法如下

chown --reference=RRFILE FILE
chown [options] --reference=RRFILE FILE

示例:复制文件所有权,但不复制文件

要将install58.iso文件用户和组onwership复制到xenial-server-amd64.iso,请执行:

chown --reference=install58.iso xenial-server-amd64.iso
ls -l