ls
オプションを使用すると、--group-directories-first
ディレクトリが一番上に表示され、出力がきれいになり、ls
きれいになります。
ls -l --group-directories-first
しかし、それはうまくいかず、symlinks
実際にはsymlinks
ディレクトリで動作します。使用可能
ls -l -L --group-directories-first
上部に両方のディレクトリが表示されますが、正しいディレクトリとシンボリックリンクディレクトリを区別できないため、再び混乱します。
ls
通常のディレクトリと区別できるようにしながら、上部にシンボリックリンクディレクトリを表示することは可能ですか?
編集する:
を使用していますbash
。
答え1
いいえ、しかしを使用している場合は、zsh
次のことができます。
mll() {
(($#)) || set -- *(N-/) *(N^-/)
(($#)) && ls -ldU -- $@
}
次のようにグローバルソート順序を定義することもできます。
dir1st() { [[ -d $REPLY ]] && REPLY=1-$REPLY || REPLY=2-$REPLY;}
次のように使用してください。
ls -ldU -- *(o+dir1st)
これにより、他のオプションや他のモードを持つコマンドではls
なく、他のコマンドと組み合わせて使用できます。ls
ls -ldU -- .*(o+dir1st) # to list the hidden files and dirs
または:
ls -ldU -- ^*[[:lower:]]*(o+dir1st) # to list the all-uppercase files and dirs
を使用する必要がある場合は、bash
次のようになります。
mll() (
if (($# == 0)); then
dirs=() others=()
shopt -s nullglob
for f in *; do
if [[ -d $f ]]; then
dirs+=("$f")
else
others+=("$f")
fi
done
set -- "${dirs[@]}" "${others[@]}"
fi
(($#)) && exec ls -ldU -- "$@"
)
bash
ワイルドカード修飾子やワイルドカードの並べ替え順序に影響を与える方法、ワイルドカードごとにnullワイルドカードを空のワイルドカードに変換する方法、オプション付きのローカルコンテキスト(サブシェルを起動するのではなく、上記の方法ではなく()
){}
AFAIK。