如何在 Mac OS 中从命令行获取八进制文件权限
目录:
命令行用户可能熟悉使用chmod 以数字或八进制格式设置文件权限,例如运行“chmod 755 文件名”之类的命令,但您是否想过如何获得文件权限八进制格式?
如果你想通过命令行查看或查看任何文件或文件夹权限的八进制数值,你可以转向Mac OS中的stat命令来这样做。
我们假设您在命令行方面具有合理的经验和舒适度,如果您没有,那么本文可能与您无关。大多数 Mac 用户只会通过 Mac Finder 查看或更改文件权限,如其他地方所述(即使如此),而这篇特定文章针对的是更高级的用户。
如何在Mac上获取数字chmod权限值
要开始使用,请从Mac 上的/Applications/ 启动终端应用程序并使用以下命令:
stat -f %A file.txt
例如,该命令可能会输出如下内容:
$ stat -f %A wget-1.18.tar.gz 644
在此示例中,“644”是该文件权限的八进制值。
或者,您可以使用 -f 和 %OLp(是的,这是大写的“o”而不是零),假设文件也是如此,输出将是相同的:
stat -f %OLp /Applications/System\ Preferences.app
该命令的示例输出可能如下所示,显示目标项目的八进制数字值权限:
"$ stat -f %OLp>"
在本例中,“系统偏好设置”应用程序的八进制权限值为775。
你不需要使用引号,但如果你出于某种原因需要转义文件名或路径,或者出于脚本目的,它们很容易像这样放置:
"stat -f %OLp>"
-f 标志用于格式,您可以使用'man stat'为统计手册页的统计输出设置特定的格式选项。
在后面的命令中,“O”(大写的o)是专门用来实现八进制输出的。
了解文件或文件夹的确切数字权限非常有用,原因有很多,如果您正在调整各种项目的权限,或者即使您正在在 Mac 上移动文件并希望保持准确的权限并在事后验证它。还有无数其他用途,特别是如果您在 Mac 上运行任何类型的服务器。
这些命令在几乎任何版本的 macOS、MacOS 或 Mac OS X 中都可以相同地检索八进制权限,无论命名约定如何大写。然而,值得注意的是,在 Mac 上获取八进制权限的方法与 Linux 世界的其他地方不同,因此如果您从 Linux 世界来到 Mac,您需要调整 stat 命令标志以准确获取八进制格式的权限,我们接下来会很快介绍。
在Linux中从命令行获取八进制文件权限
为了更透彻,我们将简要讨论在Linux 世界中获取八进制权限值,您可以使用以下方法获取八进制文件权限:
"stat -c %a %n /路径/到/文件"
也可以更简单地使用stat -c命令:
stat -c %a /Path/To/File.txt
无论如何输出的数值都是一样的,当然只要输入的目标文件相同。
同样,后两种方法是特定于linux的,您需要使用上面进一步概述的方法来获取Mac OS中文件权限的八进制值。
您知道在 Mac 上检索文件权限数值的任何其他方法吗?在下面的评论中分享它们!