それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

ls コマンドで結果を数字順序にならべる。

ls -v で数字順序に並びます。

ls -v 

このオプションかなり便利。

ls コマンドは辞書順

lsの結果は辞書に並べちゃうので困ることがあります。 たとえば、次のような場合

takuya@rena:~/Desktop/test/sample02$ touch  アルバム-{1..20}.mp3
takuya@rena:~/Desktop/test/sample02$ ls -l
total 0
-rw-r--r-- 1 takuya staff 0  5 11 09:44 アルバム-1.mp3
-rw-r--r-- 1 takuya staff 0  5 11 09:44 アルバム-10.mp3 #⇐ 残念
-rw-r--r-- 1 takuya staff 0  5 11 09:44 アルバム-11.mp3
-rw-r--r-- 1 takuya staff 0  5 11 09:44 アルバム-12.mp3
-rw-r--r-- 1 takuya staff 0  5 11 09:44 アルバム-13.mp3
-rw-r--r-- 1 takuya staff 0  5 11 09:44 アルバム-14.mp3
-rw-r--r-- 1 takuya staff 0  5 11 09:44 アルバム-15.mp3
-rw-r--r-- 1 takuya staff 0  5 11 09:44 アルバム-16.mp3
-rw-r--r-- 1 takuya staff 0  5 11 09:44 アルバム-17.mp3
-rw-r--r-- 1 takuya staff 0  5 11 09:44 アルバム-18.mp3
-rw-r--r-- 1 takuya staff 0  5 11 09:44 アルバム-19.mp3
-rw-r--r-- 1 takuya staff 0  5 11 09:44 アルバム-2.mp3
-rw-r--r-- 1 takuya staff 0  5 11 09:44 アルバム-20.mp3 #⇐ 残念
-rw-r--r-- 1 takuya staff 0  5 11 09:44 アルバム-3.mp3
-rw-r--r-- 1 takuya staff 0  5 11 09:44 アルバム-4.mp3
-rw-r--r-- 1 takuya staff 0  5 11 09:44 アルバム-5.mp3
-rw-r--r-- 1 takuya staff 0  5 11 09:44 アルバム-6.mp3
-rw-r--r-- 1 takuya staff 0  5 11 09:44 アルバム-7.mp3
-rw-r--r-- 1 takuya staff 0  5 11 09:44 アルバム-8.mp3
-rw-r--r-- 1 takuya staff 0  5 11 09:44 アルバム-9.mp3

いままでの対処法

001 とか、0001 とか、ゼロを頭につけて対応するのが、暗黙の了解みたいになってました。

でも、WindowsのExplorer が数字順序で並べちゃうので、一般ユーザーからZIPファイル貰ったときに並んでなくて困るんですね。ウインドウズのエクスプローラは賢くていいんだけど他環境の人が困るんですよね。アップロードファイルとかさ。

頭に0をつけて揃える例

takuya@rena:~/Desktop/test/sample01$ touch  アルバム-{01..20}.mp3 # ファイル作成
takuya@rena:~/Desktop/test/sample01$ ls -l
total 0
-rw-r--r-- 1 takuya staff 0  5 11 09:44 アルバム-01.mp3
-rw-r--r-- 1 takuya staff 0  5 11 09:44 アルバム-02.mp3
-rw-r--r-- 1 takuya staff 0  5 11 09:44 アルバム-03.mp3
-rw-r--r-- 1 takuya staff 0  5 11 09:44 アルバム-04.mp3
-rw-r--r-- 1 takuya staff 0  5 11 09:44 アルバム-05.mp3
-rw-r--r-- 1 takuya staff 0  5 11 09:44 アルバム-06.mp3
-rw-r--r-- 1 takuya staff 0  5 11 09:44 アルバム-07.mp3
-rw-r--r-- 1 takuya staff 0  5 11 09:44 アルバム-08.mp3
-rw-r--r-- 1 takuya staff 0  5 11 09:44 アルバム-09.mp3
-rw-r--r-- 1 takuya staff 0  5 11 09:44 アルバム-10.mp3
-rw-r--r-- 1 takuya staff 0  5 11 09:44 アルバム-11.mp3
-rw-r--r-- 1 takuya staff 0  5 11 09:44 アルバム-12.mp3
-rw-r--r-- 1 takuya staff 0  5 11 09:44 アルバム-13.mp3
-rw-r--r-- 1 takuya staff 0  5 11 09:44 アルバム-14.mp3
-rw-r--r-- 1 takuya staff 0  5 11 09:44 アルバム-15.mp3
-rw-r--r-- 1 takuya staff 0  5 11 09:44 アルバム-16.mp3
-rw-r--r-- 1 takuya staff 0  5 11 09:44 アルバム-17.mp3
-rw-r--r-- 1 takuya staff 0  5 11 09:44 アルバム-18.mp3
-rw-r--r-- 1 takuya staff 0  5 11 09:44 アルバム-19.mp3
-rw-r--r-- 1 takuya staff 0  5 11 09:44 アルバム-20.mp3

ls -v で全部解決。

いままで、並ばなかったものが並ぶようになって感動。

takuya@rena:~/Desktop/test/sample02$ ls -vl
total 0
-rw-r--r-- 1 takuya staff 0  5 11 09:44 アルバム-1.mp3
-rw-r--r-- 1 takuya staff 0  5 11 09:44 アルバム-2.mp3
-rw-r--r-- 1 takuya staff 0  5 11 09:44 アルバム-3.mp3
-rw-r--r-- 1 takuya staff 0  5 11 09:44 アルバム-4.mp3
-rw-r--r-- 1 takuya staff 0  5 11 09:44 アルバム-5.mp3
-rw-r--r-- 1 takuya staff 0  5 11 09:44 アルバム-6.mp3
-rw-r--r-- 1 takuya staff 0  5 11 09:44 アルバム-7.mp3
-rw-r--r-- 1 takuya staff 0  5 11 09:44 アルバム-8.mp3
-rw-r--r-- 1 takuya staff 0  5 11 09:44 アルバム-9.mp3
-rw-r--r-- 1 takuya staff 0  5 11 09:44 アルバム-10.mp3
-rw-r--r-- 1 takuya staff 0  5 11 09:44 アルバム-11.mp3
-rw-r--r-- 1 takuya staff 0  5 11 09:44 アルバム-12.mp3
-rw-r--r-- 1 takuya staff 0  5 11 09:44 アルバム-13.mp3
-rw-r--r-- 1 takuya staff 0  5 11 09:44 アルバム-14.mp3
-rw-r--r-- 1 takuya staff 0  5 11 09:44 アルバム-15.mp3
-rw-r--r-- 1 takuya staff 0  5 11 09:44 アルバム-16.mp3
-rw-r--r-- 1 takuya staff 0  5 11 09:44 アルバム-17.mp3
-rw-r--r-- 1 takuya staff 0  5 11 09:44 アルバム-18.mp3
-rw-r--r-- 1 takuya staff 0  5 11 09:44 アルバム-19.mp3
-rw-r--r-- 1 takuya staff 0  5 11 09:44 アルバム-20.mp3

-v オプションはバージョンで揃えるためにあります。

実は -v オプションは バージョン番号で揃えるために使われるようです。

takuya@rena:~/Desktop/test/sample03$ ls -l -v1
total 0
-rw-r--r-- 1 takuya staff 0  5 11 10:28 archive-1.1.tar.gz
-rw-r--r-- 1 takuya staff 0  5 11 10:28 archive-1.2.tar.gz
-rw-r--r-- 1 takuya staff 0  5 11 10:28 archive-1.3.tar.gz
-rw-r--r-- 1 takuya staff 0  5 11 10:28 archive-1.4.tar.gz
-rw-r--r-- 1 takuya staff 0  5 11 10:28 archive-1.5.tar.gz
-rw-r--r-- 1 takuya staff 0  5 11 10:28 archive-1.6.tar.gz
-rw-r--r-- 1 takuya staff 0  5 11 10:28 archive-1.7.tar.gz
-rw-r--r-- 1 takuya staff 0  5 11 10:28 archive-1.8.tar.gz
-rw-r--r-- 1 takuya staff 0  5 11 10:28 archive-1.9.tar.gz
-rw-r--r-- 1 takuya staff 0  5 11 10:28 archive-1.10.tar.gz
-rw-r--r-- 1 takuya staff 0  5 11 10:28 archive-1.11.tar.gz
-rw-r--r-- 1 takuya staff 0  5 11 10:28 archive-1.12.tar.gz
-rw-r--r-- 1 takuya staff 0  5 11 10:28 archive-1.13.tar.gz
-rw-r--r-- 1 takuya staff 0  5 11 10:28 archive-1.14.tar.gz
-rw-r--r-- 1 takuya staff 0  5 11 10:28 archive-1.15.tar.gz
-rw-r--r-- 1 takuya staff 0  5 11 10:28 archive-1.16.tar.gz
-rw-r--r-- 1 takuya staff 0  5 11 10:28 archive-1.17.tar.gz
-rw-r--r-- 1 takuya staff 0  5 11 10:28 archive-1.18.tar.gz
-rw-r--r-- 1 takuya staff 0  5 11 10:28 archive-1.19.tar.gz
-rw-r--r-- 1 takuya staff 0  5 11 10:28 archive-1.20.tar.gz
-rw-r--r-- 1 takuya staff 0  5 11 10:28 archive-1.21.tar.gz
-rw-r--r-- 1 takuya staff 0  5 11 10:28 archive-1.22.tar.gz
-rw-r--r-- 1 takuya staff 0  5 11 10:28 archive-1.23.tar.gz
-rw-r--r-- 1 takuya staff 0  5 11 10:28 archive-1.24.tar.gz
-rw-r--r-- 1 takuya staff 0  5 11 10:28 archive-1.25.tar.gz
-rw-r--r-- 1 takuya staff 0  5 11 10:28 archive-1.26.tar.gz
-rw-r--r-- 1 takuya staff 0  5 11 10:28 archive-1.27.tar.gz
-rw-r--r-- 1 takuya staff 0  5 11 10:28 archive-1.28.tar.gz
-rw-r--r-- 1 takuya staff 0  5 11 10:28 archive-1.29.tar.gz
-rw-r--r-- 1 takuya staff 0  5 11 10:28 archive-1.30.tar.gz

やたらバックアップばかり取ったとしても安心ですね。

参考資料

https://www.softel.co.jp/blogs/tech/archives/4219

2017-01-17 追記

sort -n するほうが普通というコメント

私もそう思います。これはls のオプション-vを紹介するエントリなので書いてないだけです。

sort -nls -v だと上記の例のように、枝番がある時の動作が異なります。また ls のオプションと組み合わせることも出来るし、GNU/BSDで用途が異なります。

ls コマンドで結果を数字順序にならべる。 - それマグで!

パイプで sort -n とかの方が普通じゃない?

2017/01/15 19:07
b.hatena.ne.jp