我知道它ls -l
列出了目录中每个文件的权限,但是如果我只想查看特定文件的权限,该命令是什么?
答案1
要获取模式:
stat -c %a file
(其中file
也可以是目录)。
注意:这是stat
来自 GNU Coreutils 的命令。否则,解决方案取决于系统。
答案2
ls -l
要获取单个文件或文件夹提供的所有信息,请使用该-d
选项并指定文件:
ls -ld filename
答案3
如果您的意图是根据文件权限执行某些操作,那么在某些情况下您可以考虑简单test
(又名[
或[[
)条件语句:
-r
文件存在且已授予读取权限-w
文件存在并授予写入权限-x
存在并授予执行权限
例如:
[ -w file ] && echo foo >> file
答案4
由于“权限”不仅仅涵盖现代 Linux 系统上的八进制 unix 权限,因此我想详细说明一下:
除了stat -c %a file
@vinc17 建议之外,还有stat -c %C file
RHEL 系统上的 SELinux 上下文以及getfacl file
使用 ACL 的卷。
namei -m /path/to/file
可能有助于找出文件路径下的所有八进制权限,因为父目录上的错误权限可能会禁止访问。