私のシステムでman
ページを見てls
Googleを検索した後awk
perl
8進権限を使用または表示する方法。使用するときにls
もっとbash
基本的な機能がありますか?
ls -alhの標準出力
$ ll
total 0
drwxr-xr-x 5 user group 170B May 20 20:03 .
drwxr-xr-x 17 user group 578B May 20 20:03 ..
-rw-r--r-- 1 user group 0B May 20 20:03 example
-rw-r--r-- 1 user group 0B May 20 20:03 example-1
-rw-r--r-- 1 user group 0B May 20 20:03 example-3
権限の8進表現を含む希望の出力
$ ll
total 0
drwxr-xr-x 1775 5 user group 170B May 20 20:03 .
drwxr-xr-x 1775 17 user group 578B May 20 20:03 ..
-rw-r--r-- 1644 1 user group 0B May 20 20:03 example
-rw-r--r-- 1644 1 user group 0B May 20 20:03 example-1
-rw-r--r-- 1644 1 user group 0B May 20 20:03 example-3
(免責事項:この8進数は不明です。正確に正しい)
推理
私はdrwxr-xr-x
権限記号に慣れていますが、時にはダッシュが奇妙な場所にあるときに一見すると間違っていることがわかります。私も8進数に相当するものを見たいです。
変換機能(質問パート2)
私はずっと前に8進数の権限が000
制限されている可能性があると思いましたが、777
最近は4桁の8進数をset-group-ID
提供sticky
しました1775
。たとえば、可能なすべての権限を8進形式で表すことはできますか?そうでなければ、bashのls
コマンドがなぜこのような形式を持たないのかをよりよく理解するでしょう。
ベストアンサー1
このstat
コマンドを使用すると、おおよその目的を達成できます。
$ stat -c '%A %a %h %U %G %s %y %n' *
drwxrwxr-x 775 2 saml saml 4096 2013-05-16 22:02:13.230463837 -0400 alsa
drwxrwxr-x 775 31 saml saml 4096 2013-03-26 12:09:20.707827127 -0400 apps
-rw-rw-r-- 664 1 saml saml 43627 2013-05-18 12:28:32.157583577 -0400 autosave.h2song
-rw-rw-r-- 664 1 saml saml 3283 2013-05-18 02:49:41.565154101 -0400 bbbb
drwxrwxr-x 775 4 saml saml 4096 2013-05-03 06:56:50.087842384 -0400 bin
-rw-rw-r-- 664 1 saml saml 4403 2013-05-18 19:20:05.819681196 -0400 blahblah
必要に応じてクリーンアップされたバージョンは次のとおりです。
$ stat -c '%A %a %h %U %G %s %y %n' *| sed 's/\.[[:digit:]]\+[ ]\+-[[:digit:]]\+/ /'
drwxrwxr-x 775 2 saml saml 4096 2013-05-16 22:02:13 alsa
drwxrwxr-x 775 31 saml saml 4096 2013-03-26 12:09:20 apps
-rw-rw-r-- 664 1 saml saml 43627 2013-05-18 12:28:32 autosave.h2song
-rw-rw-r-- 664 1 saml saml 3283 2013-05-18 02:49:41 bbbb
drwxrwxr-x 775 4 saml saml 4096 2013-05-03 06:56:50 bin
-rw-rw-r-- 664 1 saml saml 4403 2013-05-18 19:20:05 blahblah
stat
上記に加えて使用できる他のフォーマット演算子については、マニュアルページを確認してください。