ls --clasify
*/=>@|
アイテムにインジケータ(いずれか)を追加します。同じカテゴリ/測定項目の項目をグループ化したいと思います。
ls --group-directories-first
グループ化してのみ見つけることができますが/
、実行可能ファイル*
、シンボリックリンク@
、パイプ、ソケットを|
グループ化する方法は=
?
ls
はいいいえ必須です。汚いハッカーなら誰でも歓迎します。ただし、出力スタイルについては、実行した操作と同様に、インジケータ付きの多列カラー出力が必要ですls -C --color -F
。
ベストアンサー1
ls -CFUd
同じものを使うムルただし、zsh
次のことを試すことができます。
(set -o nullglob; ls --color -CFUd -- *(/) *(*) *(@) *(p) *(=) *(^/*@p=))
(...)
どこグローバル予選ディレクトリ、実行可能ファイル、シンボリックリンク、パイプ、ソケット、その他すべてに一致します。
bytype
ソート機能を次のように定義することもできます。
zmodload -F zsh/stat b:zstat
bytype() {
local mode order=(d l p s b c)
zstat -sLA mode +mode -- $REPLY
REPLY=$order[(ie)${mode[1][1]}]$REPLY
}
ls --color -CFUd -- *(o+bytype)
これはパターンテキスト表現の最初の文字(ls -l
出力の最初のフィールド)に基づいてソートされるため、-
通常のファイル、l
シンボリックリンクなどの場合は配列でランク付けされます$order
。
実行ファイルはファイル形式ではないため、特に扱われません。ls -F
または glob 修飾子の場合、*
実行可能ファイルは次のようになります。定期的な権限に1つ以上の実行ビットが設定されているファイル(あなた実行権限があるため、次の方法で処理できます。
zmodload -F zsh/stat b:zstat
bytype() {
local mode order=(d '*' l p s b c)
zstat -sLA mode +mode -- $REPLY
if [[ $mode = -*[xts]* ]] mode=('*')
REPLY=$order[(ie)${mode[1][1]}]$REPLY
}