小文字の前に大文字を使用して、次のようなソートを行います。
-rw-r--r--. 1 0 0 183 2014-10-14 20:17 ./CHECKSUMS.md5
-rw-r--r--. 1 0 0 185 2014-10-14 20:17 ./CHECKSUMS.asc
drwxr-xr-x. 2 0 0 4096 2014-10-14 18:01 ./a
-rw-------. 1 0 0 464140 2013-12-16 19:11 ./a/pam-1.1.8-x86_64-2mg.txz
drwxr-xr-x. 2 0 0 4096 2014-10-14 19:55 ./b
-rw-------. 1 0 0 464140 2014-10-14 19:55 ./b/pam-1.1.8-x86_64-2mg.txz
drwxr-xr-x. 2 0 0 4096 2014-10-14 18:00 ./c
drwxr-xr-x. 2 0 0 4096 2014-10-14 18:00 ./d
drwxr-xr-x. 2 0 0 4096 2014-10-14 18:00 ./e
drwxr-xr-x. 2 0 0 4096 2014-10-14 18:00 ./f
drwxr-xr-x. 2 0 0 4096 2014-10-14 18:00 ./g
私は次のコマンドを使用します。
find -L . -print | sort -d | xargs ls -nld --time-style=long-iso
結果:
drwxr-xr-x. 29 0 0 4096 2014-10-14 20:17 .
drwxr-xr-x. 2 0 0 4096 2014-10-14 18:01 ./a
-rw-------. 1 0 0 464140 2013-12-16 19:11 ./a/pam-1.1.8-x86_64-2mg.txz
drwxr-xr-x. 2 0 0 4096 2014-10-14 19:55 ./b
-rw-------. 1 0 0 464140 2014-10-14 19:55 ./b/pam-1.1.8-x86_64-2mg.txz
drwxr-xr-x. 2 0 0 4096 2014-10-14 18:00 ./c
-rw-r--r--. 1 0 0 183 2014-10-14 20:17 ./CHECKSUMS.md5
drwxr-xr-x. 2 0 0 4096 2014-10-14 18:00 ./d
drwxr-xr-x. 2 0 0 4096 2014-10-14 18:00 ./e
drwxr-xr-x. 2 0 0 4096 2014-10-14 18:00 ./f
drwxr-xr-x. 2 0 0 4096 2014-10-14 18:00 ./g
希望のソート順序を取得するにはどうすればよいですか?
答え1
環境変数を確認してくださいLC_COLLATE
。最も簡単な方法はコマンドを使用することですlocales
。必要に応じて他の値に設定できます。たとえば、次のようにできます(bash仮定)。
export LC_COLLATE="C"
これにより問題が解決します。
答え2
最も簡単な方法は、LC_ALL = Cエクスポートを使用し、ls、sortなどでスクリプトを作成し、優先LC(私の場合はUTF8)を返すことです。