ファイル名と対応するファイル権限のみを表示したいのですが、どうすればいいでしょうか?
ls -lは
-rw-rw-r-- 1 jb jb 102 Apr 28 12:48 hello2.txt
-rw-rw-r-- 1 jb jb 102 Apr 28 12:53 hello.txt
以下のようにしたい
-rw-rw-r-- 1 hello2.txt
-rw-rw-r-- 1 hello.txt
答え1
コマンドstat
は次の目的で作成されます:
stat -c '%A %n' *.txt
または
stat --printf '%A\t%n\n' *.txt
ここで、書式指定子の意味は以下のとおりです。
%A access rights in human readable form
%n file name
答え2
それ自体を使用することで、ほとんどの目的を達成できますls
。ls -lGg --time-style=+
アクセス モード、リンク数、サイズ、および名前のみが出力されます。
ファイル名には何でも含まれる可能性があるため、出力の処理は難しいです。処理時にファイル名について何も想定できません。代わりに、必要な情報を正確に印刷するls
方がよいでしょう。find
-printf
:
find . -printf '%M %p\n'
-maxdepth
(リストを制限するために、必要に応じてなどのオプションを使用します。)
答え3
gawk
次のようにパイプして、必要なフィールドを出力できます。
ls -l | gawk '{print $1 " " $2 " " $9}'