Macのターミナルでファイルのパーミッションを数字で表示する方法

ファイルのパス指定

stat -f %A settings.json
644

ls簡易版

stat -f "%p %N" * | awk '{$1=substr($1,length($1)-2)}1'
644 CODE_OF_CONDUCT.md
644 CONTRIBUTING.md
644 LICENSE
644 README.md
755 apps
755 autocomplete
644 autocomplete_actions.json
755 bin
644 fig.history

ls互換版

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}';
644 -rw-r--r--@  1 simmon  staff   3307 Feb 15 11:48 CODE_OF_CONDUCT.md
644 -rw-r--r--@  1 simmon  staff   2117 Feb 15 11:48 CONTRIBUTING.md
644 -rw-r--r--@  1 simmon  staff   1081 Feb 15 11:48 LICENSE
644 -rw-r--r--@  1 simmon  staff   1769 Feb 15 11:48 README.md
755 drwxr-xr-x@  4 simmon  staff    128 Feb 15 11:32 apps/
755 drwxr-xr-x@  3 simmon  staff     96 Feb 15 11:32 autocomplete/
644 -rw-r--r--@  1 simmon  staff    399 Feb 23 09:05 autocomplete_actions.json
755 drwxr-xr-x   9 simmon  staff    288 Feb 23 09:05 bin/
644 -rw-r--r--   1 simmon  staff  53248 Feb 24 00:05 fig.history

これをいちいち覚えたり入力するのは面倒なので自分の場合は下記のように.zshrcaliasとしてlslaを登録しています。

alias lsla=$'ls -la "$@" | 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}\';'

参考