Jon*_*ley 171 unix permissions command-line
是否可以在列出目录时查看数字unix权限,例如644而不是符号输出-rw-rw-r--
谢谢.
mik*_*iku 328
使用此选项可显示八进制值(数字chmod权限)和文件名:
stat -c '%a %n' *
有关更多选项,请参阅stat.
有关使用别名执行此操作的更有效方法,请参阅下面的评论.
JB.*_*JB. 139
我能想到的最近(保持简单)就是stat假设您知道要查找哪些文件.如果你不这样做,*可以找到大部分:
/usr/bin$ stat -c '%a %n' *
755 [
755 a2p
755 a2ps
755 aclocal
...
它处理粘性,suid和公司开箱即用:
$ stat -c '%a %n' /tmp /usr/bin/sudo
1777 /tmp
4755 /usr/bin/sudo
gho*_*g74 55
你可以使用GNU find.
find . -printf "%m:%f\n"
Moh*_*jib 31
您可以使用以下命令
stat -c "%a %n" *
您也可以使用任何filename或directoryname代替*获得特定结果.
在Mac上,您可以使用
stat -f '%A %N' *
小智 16
@The MYYN
哇,好awk!但是suid,sgid和sticky bit怎么样?
您必须使用s和t扩展过滤器,否则它们将无法计数并且您得到错误的结果.要计算此特殊标志的八进制数,过程是相同的,但索引位于4 7和10. ---s--s--t对于没有执行位设置的文件,执行位设置的文件的可能标志是amd---S--S--T
ls -l | awk '{
    k = 0
    s = 0
    for( i = 0; i <= 8; i++ )
    {
        k += ( ( substr( $1, i+2, 1 ) ~ /[rwxst]/ ) * 2 ^( 8 - i ) )
    }
    j = 4 
    for( i = 4; i <= 10; i += 3 )
    {
        s += ( ( substr( $1, i, 1 ) ~ /[stST]/ ) * j )
        j/=2
    }
    if ( k )
    {
        printf( "%0o%0o ", s, k )
    }
    print
}'  
测试:
touch blah
chmod 7444 blah
将导致:
7444 -r-Sr-Sr-T 1 cheko cheko   0 2009-12-05 01:03 blah
和
touch blah
chmod 7555 blah
会给:
7555 -r-sr-sr-t 1 cheko cheko   0 2009-12-05 01:03 blah
Eri*_*lez 15
使用它来显示 Unix 数字权限值(八进制值)和文件名。
stat -c '%a %n' *
使用它来显示 Unix 数字权限值(八进制值)和文件夹的 sgid 和粘滞位、所有者的用户名、组名、总大小(以字节为单位)和文件名。
stat -c '%a %A %U %G %s %n' *
%y如果您需要人类可读格式的上次修改时间,请添加。有关更多选项,请参阅stat。
使用别名的更好版本
使用别名是完成您需要的更有效的方法,它还包括颜色。下面首先显示按组目录组织的结果,以彩色显示,以人类可读格式(例如,1K 234M 2G)的打印尺寸编辑您的~/.bashrc并为您的帐户添加别名或通过编辑全局/etc/profile.d/custom.sh 
键入cls会显示新的 LS 命令结果。
alias cls="ls -lha --color=always -F --group-directories-first |awk '{k=0;s=0;for(i=0;i<=8;i++){;k+=((substr(\$1,i+2,1)~/[rwxst]/)*2^(8-i));};j=4;for(i=4;i<=10;i+=3){;s+=((substr(\$1,i,1)~/[stST]/)*j);j/=2;};if(k){;printf(\"%0o%0o \",s,k);};print;}'"
文件夹树
当您编辑 bashrc 或 custom.sh 时,请包含以下别名以查看图形表示,其中键入lstree将显示您当前的文件夹树结构
alias lstree="ls -R | grep ":$" | sed -e 's/:$//' -e 's/[^-][^\/]*\//--/g' -e 's/^/   /' -e 's/-/|/'"
它会显示:
   |-scripts
   |--mod_cache_disk
   |--mod_cache_d
   |---logs
   |-run_win
   |-scripts.tar.gz
您不使用 ls 来获取文件的权限信息。您使用 stat 命令。它会给你你想要的数值。“Unix Way”说您应该使用 ls (或“echo *”)和 stat 以及您喜欢的任何其他命令来发明自己的脚本,以您想要的格式提供信息。
| 归档时间: | 
 | 
| 查看次数: | 97504 次 | 
| 最近记录: |