問題描述
有沒有辦法以數字格式 “0777” 而不是 “-rw–r–r” 格式獲取文件/目錄權限?
最佳方法
您可以使用 stat 命令顯示文件的八進製權限:
stat -c %a [filename]
或者通過使用查找:
find [path] -printf '%m %p\n'
請注意,查找是遞歸的,並且還將打印所有子目錄中的所有文件。您可以使用 maxdepth
或 prune
等選項來阻止它遞歸。
次佳方法
我知道這是一篇舊文章,但我在尋找解決方案時發現了它,並對其進行了擴展:
stat -c '%a - %n'
這將顯示文件權限和文件名。這使您可以通過以下方式查看文件夾中每個文件的權限:
stat -c '%a - %n' *
我還更進一步,做了一個別名:
alias perms="stat -c '%a - %n'"
所以輸入 perms * 會給我每個文件的權限,或者 perms file.php 會給我那個文件的權限。
對於在尋找 OSX 解決方案時發現此問題的用戶:
10.10 之後的 OSX 版本不再有接受 -c 參數的 stat 版本。如果您收到有關“非法選項 — c”的錯誤,那麽您應該能夠使用此統計命令:
stat -f "%A - %N" *
這也可以像我之前共享的命令一樣使用別名:
alias perms="stat -f '%A - %N'"
第三種方法
您也可以使用此解決方法:
find FILENAME/DIRECROY -printf "%m:%f\n"
示例檢查我的視頻目錄:
find Videos -printf "%m:%f\n"
755:Videos
另一種方法:
用於列出所有目錄文件及其權限
ls -l | awk '{k=0;for(i=0;i<=8;i++)k+=((substr($1,i+2,1)~/[rwx]/) \
*2^(8-i));if(k)printf("%0o ",k);print}'