ディレクトリリストをアルファベット順に並べ替える

ディレクトリリストをアルファベット順に並べ替える

ディレクトリをアルファベット順に降順にソートする必要がありますが、ソートパイプラインは機能しません。

alias ld='ls -altp | grep ^d|sort -n'

答え1

ls -ld */

これにより、現在のディレクトリの長い形式の目次がアルファベットls順に並べ替えられます。ファイルがディレクトリへのシンボリックリンクの場合、ファイルもディレクトリとして一覧表示されます。

lsいずれかの項目にエイリアスを使用する場合は、上記の代わりにcommand lsまたはを使用してください。\lsls

後続のスラッシュはディレクトリだけを拡張し(シンボリックリンクをチェックして)、出力にも含めることができます**この-dオプションを使用すると、ディレクトリの内容ではなくディレクトリ自体が一覧表示されます。

〜のようにジェフは指摘する、エイリアス名を指定するldことは、既存のユーティリティ名と競合するため、お勧めできません。

答え2

出力を解析しないでくださいls。これは悪い考えで、気分が悪くなります。代わりにfind目次lsを並べ替えます。その後、出力を噛みしないでください:

$ find . -maxdepth 1 -type d -print0 | xargs -0 ls -ld

幸いなことに、ls出力はデフォルトですでにアルファベット順に並べられています。

より簡単には次のようになりますtree

$ tree -d -L 1

答え3

sort長いリストを並べ替えるように言いました。ls 数値的に。修正時間()のls順にリストをソートするように指示した後です!t

短期的な修正のための最善のアドバイスは次のとおりです。

ls -d */ | sort # optionally `-f` to sort upper- and lower-case together.

ディレクトリを選択できるzshなどのシェルを使用することをお勧めしますそして自分で並べ替えます。

zsh -c "ls -ld */(on)"

/ディレクトリのみが必要であると指定した場合、修飾子はリストがディレクトリ名に基づいてソートさ(on)れることを意味します。

また、過負荷を与えないことをお勧めします。ldプログラム名

alias lls='zsh -c "ls -ld */(on)"'

関連情報