在FreeBSD和Linux中,如何获取文件的数值chmod?例如,用644代替-rw-r--r--?我需要一种自动方式来制作Bash脚本。

#1 楼

您可以使用stat输出格式直接获取值,例如BSD / OS X:

stat -f "%OLp" <file>


或在Linux中

stat --format '%a' <file>


和在busybox中br />
 stat -c '%a' <file>


评论


不需要单引号,并且--format可以缩写为-c。这有效:stat -c%a <文件>

–约翰尼为什么
16-09-23在17:53



我需要Ubuntu上的busybox答案,否则“统计信息:无法读取'%OLp'的文件系统信息:无此类文件或目录”

–豆腐
18 Mar 11 '18 at 13:34

#2 楼

使用stat YOUR_FILE,除非编写脚本来计算: >

评论


是的,我在FreeBSD框下找到了它,在FreeBSD框下使用stat -x YOUR_FILE

–波斯湾
2012年9月1日19:02在

stat -r YOUR_FILE | awk'{print $ 3}'授予您的许可。

–波斯湾
2012年9月1日19:09



命令显示友好?不仅是666之类的数字或代码-rw-wxrw-,还包括带有每种权限说明的文本。

– Peter Krauss
18/12/3在19:18

@PeterKrauss,最好编写一个awk来检索数值结果。

–波斯湾
18/12/6在16:07

谢谢@PersianGulf。哼...没有即插即用的标准方式。

– Peter Krauss
18/12/6在23:04

#3 楼

有关stat的一些附加信息:

$ stat -c %a file.txt

777  

$ stat -c %A file.txt

-rwxrwxrwx


评论


在Mac下是stat -f%A file.txt,它将返回644或其他3个数字。

–魏京杰
17年6月15日在7:11

#4 楼

试试这个列出所有

stat --format "%a  %n" *