网站搜索

在 Linux 中将 rwx 权限转换为八进制格式


有时您可能会发现以八进制形式显示文件或目录的访问权限而不是 rwx 很有用,或者您可能想同时显示两者。

在大多数现代 Linux 发行版(如果不是全部)中,您会发现 stat 是一个显示文件或文件系统状态的实用程序,而不是使用旧的 ls -l 命令。

当不带参数但后跟给定文件名运行时,stat 将显示有关文件或目录的大量信息。如果与 -c 选项一起使用,stat 允许您指定输出格式。我们正是对这个选项特别感兴趣。

要显示当前工作目录中的所有文件,后跟八进制形式的访问权限,请键入:

stat -c '%n %a' *
样本输出
add_emails.sh 755
anaconda-ks.cfg 600
delete_emails.sh 755
employee-dump.sql 644
index.html 644
latest.tar.gz 644
nrpe-2.15.tar.gz 644
php7 644
playbook.retry 644

上面的命令中,格式顺序:

  1. %n – 表示文件名
  2. %a – 表示八进制形式的访问权限

或者,如果您想显示 rwx< 中的权限,您可以将 %a 附加到 %A,即传递给 stat 的参数。 格式也是如此。

在这种情况下,您可以输入:

stat -c '%n %A' *
样本输出
add_emails.sh -rwxr-xr-x
anaconda-ks.cfg -rw-------
delete_emails.sh -rwxr-xr-x
employee-dump.sql -rw-r--r--
index.html -rw-r--r--
latest.tar.gz -rw-r--r--
nrpe-2.15.tar.gz -rw-r--r--
php7 -rw-r--r--
playbook.retry -rw-r--r--

要查看输出中的文件类型,您可以添加 %F 格式序列。

stat -c '%c %F %a'

您还可以指定其他几种格式序列,请参阅stat man页面以了解更多信息。

man stat

在本技巧中,我们介绍了一个名为 stat 的重要 Linux 实用程序,它可以帮助您显示文件或文件系统状态。我们这里的主要重点是将 rwx 访问权限从传统的 ls -l 输出转换为八进制形式。

正如我之前提到的,许多现代 Linux 发行版现在都带有 stat 实用程序。但您还必须记住,您的 shell 可能带有自己的 stat 版本,因此请参阅您的 shell 文档以获取有关选项及其使用方法的更多信息。