
ディレクトリ内に「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)
ファイルを数値順にソートします。したがって、 がls
GNU でない場合でもls
、次のようにすることができます。
ls -fdl -- *(n)
リストを数値順にソートします。