在Linux上如何将一个文件的权限复制到另一个文件
时间:2019-11-20 08:53:46 来源:igfitidea点击:
在Linux中,如何从一个文件中拷贝它的用户,组所有权和权限到另一个文件?
如何只复制文件的权限,而不复制文件?
在Linux上复制文件权限的语法
语法如下,使用RFILEs模式而不是MODE值:
chmod --reference=RRFILE FILE chmod [options] --reference=RRFILE FILE
示例:复制文件权限,但不复制文件
让我们列出两个文件:
ls -l anaconda.cfg initial-setup-ks.cfg
输出示例:
-rw-rw-rw- 1 libvirt-qemu kvm 230862848 Aug 16 2015 anaconda.cfg -rw-r--r-- 1 libvirt-qemu kvm 786432000 Mar 14 02:01 initial-setup-ks.cfg
将anaconda.cfg的文件权限复制到anaconda.cfg :
chmod --reference=anaconda.cfg initial-setup-ks.cfg
检查一下:
ls -l anaconda.cfg initial-setup-ks.cfg
输出示例:
-rw-rw-rw- 1 libvirt-qemu kvm 230862848 Aug 16 2015 anaconda.cfg -rw-rw-rw- 1 libvirt-qemu kvm 786432000 Mar 14 02:01 initial-setup-ks.cfg
还可以指定多个文件:
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
示例:复制文件的所有权,但不复制文件
将文件hdparm-9.56.tar的所有权复制到cryptsetup.tar.gz:
chown --reference=hdparm-9.56.tar cryptsetup.tar.gz