如何在Linux中将文件的权限和所有权复制到另一个文件?

很多时候,将数据从一个位置备份到另一个位置或配置软件时,我们需要保持相同级别的文件所有权和权限。通过为每个文件键入命令来创建这些权限并授予单个文件所有权可能很容易出错。因此,我们在chown和chmod命令中使用了一些参数。

所有权

我们在chown函数中使用–-reference swiych来指定从源文件到目标文件的所有权克隆。

语法

chown --reference=source_reference_file target_file

在下面的示例中,我们有一个源文件,在执行上述命令后,其所有权被克隆到目标文件。所有权详细信息将在应用命令之前和之后显示。

# Before cloning the ownership
$ ls –lt
# Applying the ownership
$sudo chown --reference=ref_file.txt all_rivers.txt
# After Applying the ownership
$ls -lt

运行上面的代码给我们以下结果-

# Before applying ownership
-rw-r--r-- 1 root root 19 Jan 1 08:40 all_rivers.txt
-rw-rw-r-- 1 ubuntu ubuntu 2925 Jan 1 08:39 ref_file.txt
# After applying ownership
-rw-r--r-- 1 ubuntu ubuntu 19 Jan 1 08:40 all_rivers.txt
-rw-rw-r-- 1 ubuntu ubuntu 2925 Jan 1 08:39 ref_file.txt

文件权限

以类似的方式,文件权限也可以使用类似的语法从一个文件复制到另一个文件,但是涉及chmod。

# Before cloning the permission
$ ls –lt
# Applying the permission
$sudo chmod --reference=ref_file.txt all_rivers.txt
# After Applying the permission
$ls -lt

运行上面的代码给我们以下结果-

# Before Cloning permission
-rw-r--r-- 1 ubuntu ubuntu 19 Jan 1 08:40 all_rivers.txt
-rw-rw-r-- 1 ubuntu ubuntu 2925 Jan 1 08:39 ref_file.txt
# After cloning permission
-rw-rw-r-- 1 ubuntu ubuntu 19 Jan 1 08:40 all_rivers.txt
-rw-rw-r-- 1 ubuntu ubuntu 2925 Jan 1 08:39 ref_file.txt