有没有一种方法可以在不使用“ls”的情况下显示文件的权限

有没有一种方法可以在不使用“ls”的情况下显示文件的权限

仅此而已 - 只是想知道是否有其他方法可以找出文件的权限,而无需执行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"形式输出权限值(例如6441644007),结果中包含三个或四个字符。

答案4

您可以使用stat,如stat <filename>.

相关内容