ディレクトリ内の「1」、「2」、...、「9」、「10」、「11」、...、「20」、「21」、... のすべてのファイルを `ls` できますか?

ディレクトリ内の「1」、「2」、...、「9」、「10」、「11」、...、「20」、「21」、... のすべてのファイルを `ls` できますか?

ディレクトリ内に「1」、「2」、...、「9」、「10」、「11」、...、「20」、「21」、... という名前のファイルがあります。

「1」、「2」、...、「9」、「10」、「11」、...、「20」、「21」、...の順番で記載してもいいでしょうか?

試してみましたls -ls。ファイルはそのようにリストされず、代わりに「1」、「10」、「11」、...、「19」、「2」、「20」、「21」、... のように表示されます。このような機能は時々役立つと思います。

答え1

GNU ls(ほとんどのLinuxディストリビューションに搭載されている)では、 を使用できますls -v。ここで、 は、ページ-vからman

 -v     natural sort of (version) numbers within text

答え2

GNUls -vについてはすでに説明しましたが、他のコマンドについては、シェルが の場合zsh、グロブ修飾子を使用してワイルドカードが展開される順序に影響を与えることができます。

例えば:

printf '%s\n' *(om)

並べ替え順序を逆にするとm、ファイルを odification 時間順 (最新から最古の順) でリストします。*(Om)

*(n)ファイルを数値順にソートします。したがって、 がlsGNU でない場合でもls、次のようにすることができます。

ls -fdl -- *(n)

リストを数値順にソートします。

関連情報