在Linux中,可能需要更改文件或目录的所有者和组相关信息。 如果你是一个命令行的新手,并想知道如何通过命令行进行这样的更改,你会很高兴知道,存在一个命令 - dubbed chown - 让你这样做。
在我们从chown命令教程开始之前,值得一提的是,这里提到的所有示例和说明都已在Ubuntu 16.04 LTS上进行了测试。 此外,我们使用的chown版本是8.25。
Linux chown命令
如开始已经提到的,chown命令允许您通过命令行更改文件所有者和组。 以下是命令的通用语法:
chown [OPTION]... [OWNER][:[GROUP]] FILE...
这是工具的手册页面所说的:
If only an owner (a user name or numeric user ID) is given, that user is made the owner of each
given file, and the files' group is not changed. If the owner is followed by a colon and a
group name (or numeric group ID), with no spaces between them, the group ownership of the files is
changed as well. If a colon but no group name follows the user name, that user is made the owner
of the files and the group of the files is changed to that user's login group. If the colon
and group are given, but the owner is omitted, only the group of the files is changed; in this case,
chown performs the same function as chgrp. If only a colon is given, or if the entire operand is
empty, neither the owner nor the group is changed.
以下Q&A类型的示例将为您提供有关chown命令的工作原理:
Q1。 如何更改文件的所有者?
请考虑以下示例:
在这里,文件的所有者是“himanshu”,它所属的组也是“himanshu”。 现在,要将所有者更改为“root”,请使用以下命令:
chown root file1
以下屏幕截图确认所有者现在已更改为“root”。
Q2。 如何更改文件组?
更改组与更改所有者类似。 唯一的区别在于命令的语法,具体如下:
chown :[group-name] [file-name]
所以假设要求将'file1'组更改为'root'。 那么命令就是:
chown :root file1
以下截图显示该组已成功从“himanshu”更改为“root”。
注意 :如果您想知道为什么使用“sudo”命令,或者如果您刚刚使用“sudo”,则应首先浏览本工具的教程 。
Q3。 如何更改文件的所有者和组?
要更改所有者和文件组,请使用以下语法:
chown [new-owner]:[new-group] [file-name]
所以在我们的例子中,要将现有的所有者和组从“root”更改为“himanshu”,我们将使用以下命令:
chown himanshu:himanshu file1
以下屏幕截图显示上述命令行动:
Q4。 检查现有所有者/组后如何更改所有者或组(或两者)?
在进行任何更改之前,您可能希望首先对现有的所有者/组进行交叉检查。 所以对于这些情况,可以使用--from命令行选项。 此选项要求您提及要验证的所有者/组名称。
chown --from=[curr-own]:[curr-group] [new-owner]:[new-group] [filename]
例如:
chown --from=root:himanshu himanshu:root file1
上述命令将检查现有所有者是否为“root”,组是“himanshu”。 如果是,那么所有者将改为“himanshu”,组将成为“root”。
Q5。 如何从参考文件中选择所有者/组信息?
也可能会有一些情况,您可能希望从文件中选择所有者和组相关信息,而不是在命令行上手动输入。 对于这些情况,您可以使用--reference命令行选项。 此选项要求您输入参考文件的名称。
chown --reference=[ref-file-name] [filename]
例如:
chown --reference=file2 file1
所以上述命令将把所有者和组信息从file2复制到file1。
Q6。 如何使chown对文件和目录递归运行?
要使chown命令递归地对文件和目录进行操作,请使用-R命令行选项。
chown -R [new-owner]:[new-group] [directory-name-or-path]
对于那些没有意识到的人,递归意味着将对给定目录中的所有文件以及所有子目录中的文件和目录执行操作。
Q7。 如何使chown抑制错误消息?
有时候,您运行的chown命令会出错。 例如,在我的系统上执行以下命令:
chown --from=himanshu:himanshu himanshu:root file4
给出以下错误:
chown: cannot access 'file4': No such file or directory
现在假设工具不应该显示这样的错误。 然后可以使用-f命令行选项来实现。
上述屏幕截图确认-f命令行选项可以抑制错误/警告。
结论
chown命令,大多数你可能会同意,不难使用。 更好的是, 该工具的手册页包含许多可能对用户(特别是新手)的帮助的细节。 尝试我们在这里解释的例子,其余的功能/选项,通过chown手册页。 如有任何疑问或疑问,请在下方发表评论。