次のコマンドを使用して、サブディレクトリ内のファイルを含むファイルを名前順に一覧表示しています。
dir /b/s/on
ファイルは指定されたディレクトリ内で正しく順序付けられていますが、ディレクトリは順序付けられていません。ディレクトリは、最終更新日順に並べられているようです。
dir
はディレクトリも並べ替えることができますか?
これは、出力の一部のスクリーンショットです(難読化されています)。
dir
はディレクトリをツリーウォークしますが、リーフディレクトリ内のエントリのみをソートします。これはFATファイルシステムであるため問題です。 FATファイルシステムでは、任意のディレクトリのエントリがソートされていないため、ツリーウォークがソートされていません。対照的に、NTFSディレクトリは常にソートされます。
いくつかの解決策があります。最も簡単なのは、出力をsort
にパイプすることです。
dir /b/s | sort
(注文にsort
を使用している場合は、dir
に/on
オプションを指定する必要はありません。)
他の選択肢は、Unixスタイルのls
を使用することです。これは、確かにこれを正しく行うでしょう。例としては、 Cygwin または私自身の Hamilton C Shell のいずれかのls
があります。