lsを使用して権限でファイルをソートする方法は?

lsを使用して権限でファイルをソートする方法は?

ディレクトリには多数のファイルとディレクトリがあります。

権限に基づいてソートする必要があります。

例えば

drwx------
drwxr-xr-x 
drwxr-x---

ls?を使用してファイルとディレクトリを並べ替えることができるかどうかを知りたいです。

答え1

ls特権ソートは直接サポートされませんが、 sort コマンドで使用できます。

ls -l | sort

ソートオプションを使用して、-k特定の文字から一致を開始できます。形式では、権限は出力の最初のフィールド-k FIELD.CHARです。lsたとえば、-k 1.2権限文字列の2番目の文字で始まり、ディレクトリ/デバイス/リンクなどのフラグを無視したり、グループ権限で-k 1.5並べ替えたりします。

追加の出力が必要ない場合は、ls -lawkを使用して削除できます。

 ls -l | sort | awk '{ print $1, $NF}'

これにより、最初のフィールド(権限)と最後のフィールド(ファイル名)のみが印刷されます。

答え2

8進値で並べ替えることもできます。

for i in *; do stat --format="%a %n" "$i"; done | sort -n

関連情報