ls
そのオプションがあることは承知しています--group-directories-first
が、それはまさに私が達成したいことではありません。
出力は次のようになります: (名前のASCでソート)
- ディレクトリ
- 隠しディレクトリ
- 隠しファイル
答え1
GNU の場合ls
(ファイル リストをソートしないように-U
指示するオプションはGNU 拡張機能です):ls
ls -lUd -- *(/) .*(/) .*(^/)
しかし問題は、これらのグロブのいずれかが一致しない場合、コマンドがキャンセルされることです。そのため、次のようにすることができます。
myls() (
setopt cshnullglob
ls -lUd -- *(/) .*(/) .*(^/)
)
これはcsh
、コマンド内に何かに展開される glob が少なくとも 1 つある限り、一致しない glob が何も展開されないという動作をエミュレートします。
zsh
glob は と を展開することはないので.
、..
これら 2 つが含まれることは決してないことに注意してください。