![有没有一种方法可以在不使用“ls”的情况下显示文件的权限](https://linux22.com/image/88247/%E6%9C%89%E6%B2%A1%E6%9C%89%E4%B8%80%E7%A7%8D%E6%96%B9%E6%B3%95%E5%8F%AF%E4%BB%A5%E5%9C%A8%E4%B8%8D%E4%BD%BF%E7%94%A8%E2%80%9Cls%E2%80%9D%E7%9A%84%E6%83%85%E5%86%B5%E4%B8%8B%E6%98%BE%E7%A4%BA%E6%96%87%E4%BB%B6%E7%9A%84%E6%9D%83%E9%99%90.png)
仅此而已 - 只是想知道是否有其他方法可以找出文件的权限,而无需执行ls -l
查看那里的值字符串。
据我所知,没有展示中的选项chmod
。
答案1
除此之外stat
(特定于 Linux),还有一些工具可以让你这样做,作为副作用。tar
例如,该程序可以执行以下操作:
tar cf - filename | tar tvf -
例如
$ tar cf - foo |tar tvf -
rwxr-xr-x 1021/1021 18 Jan 13 21:40 2016 foo
使用像这样的特殊功能"-"
是相当便携的(它与AIX,高性能用户体验系统,索拉里斯,Linux和自由BSD)。
术语“合理便携”适用于
- 可用性
- 相同的格式
有一些关于统计与可移植性的评论。这是输出GNU 核心工具stat
:
$ stat foo
File: `foo'
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 801h/2049d Inode: 784564 Links: 1
Access: (0755/-rwxr-xr-x) Uid: ( 1001/ tom) Gid: ( 100/ users)
Access: 2016-05-12 19:03:54.773503477 -0400
Modify: 2016-05-12 19:03:54.773503477 -0400
Change: 2016-05-12 19:03:54.773503477 -0400
Birth: -
和输出BSD 统计(操作系统):
$ stat foo
16777221 61893362 -rwxr-xr-x 1 tom wheel 0 0 "May 12 19:03:54 2016" "May 12 19:03:54 2016" "May 12 19:04:59 2016" "May 12 19:03:54 2016" 4096 0 0 foo
这是一个示例输出AIX 操作系统(看起来不同的大部头书):
$ istat foo
Inode 3166649 on device 32768/13 File
Protection: rwxr-xr-x
Owner: 1021(dickey) Group: 1021(dickey)
Link count: 1 Length 18 bytes
Last updated: Wed Jan 13 21:40:30 UTC 2016
Last modified: Wed Jan 13 21:40:30 UTC 2016
Last accessed: Wed Jan 13 21:40:20 UTC 2016
答案2
这是更具体的 Linux 且晦涩难懂(需要安装 ACL 工具),但getfacl
即使文件上没有设置 ACL,该命令也会显示与此类似的输出:
[root@mymachine ~#] getfacl my_file.txt
#file: my_file.txt
#owner: root
#group: root
user::rw-
group::r--
other::r--
答案3
我认为 AIX 有perl
某种类型的。
perl -e 'printf "%03o\n", (stat( $ARGV[0] ))[2] & 07777' /etc/hosts
这stat
函数返回有关所选文件的各种令人兴奋的元数据。在这里,我只使用第三个元素([2]
从零开始计数),它主要是权限。以八进制printf "%03o\n"
形式输出权限值(例如644
、1644
或007
),结果中包含三个或四个字符。
答案4
您可以使用stat
,如stat <filename>
.