Bir dizinde aşağıdaki dosyaları oluşturun.
$ touch .a .b a b A B 你好嗎
Varsayılan ls
siparişim, diğer dosyalarla iç içe geçerek öndeki noktaların varlığını yok sayar.
$ ls -Al
total 0
-rw-r--r-- 1 sparhawk sparhawk 0 Jun 8 17:03 a
-rw-r--r-- 1 sparhawk sparhawk 0 Jun 8 17:03 .a
-rw-r--r-- 1 sparhawk sparhawk 0 Jun 8 17:03 A
-rw-r--r-- 1 sparhawk sparhawk 0 Jun 8 17:03 b
-rw-r--r-- 1 sparhawk sparhawk 0 Jun 8 17:03 .b
-rw-r--r-- 1 sparhawk sparhawk 0 Jun 8 17:03 B
-rw-r--r-- 1 sparhawk sparhawk 0 Jun 8 17:06 你好嗎
Ben yapabilirsiniz değiştirmek LC_COLLATE
ilk dotfiles koymak.
$ LC_COLLATE=C ls -Al
total 0
-rw-r--r-- 1 sparhawk sparhawk 0 Jun 8 17:03 .a
-rw-r--r-- 1 sparhawk sparhawk 0 Jun 8 17:03 .b
-rw-r--r-- 1 sparhawk sparhawk 0 Jun 8 17:03 A
-rw-r--r-- 1 sparhawk sparhawk 0 Jun 8 17:03 B
-rw-r--r-- 1 sparhawk sparhawk 0 Jun 8 17:03 a
-rw-r--r-- 1 sparhawk sparhawk 0 Jun 8 17:03 b
-rw-r--r-- 1 sparhawk sparhawk 0 Jun 8 17:06 你好嗎
Maalesef bu sıralama düzenini büyük / küçük harf duyarlı, yani A
ve B
önce a
ve yapar b
. Önce büyük / küçük harfe duyarsız kalırken ( A
ve a
önce B
ve b
) dotfiles yazdırmanın bir yolu var mı ?
Düzenleme: LC_COLLATE değiştirilmeye çalışılıyor
Şu ana kadarki cevapların hiçbiri ls
kolayca işlevselliğini tam olarak çoğaltmıyor . Muhtemelen, bazılarını bir fonksiyona sarabilirdim, fakat bunun (örneğin) bir argüman olmadan nasıl çalışılacağına ve bir dizini argüman olarak sunmaya ilişkin bazı ayrıntılı kodlar içermesi gerekir. Veya açık bir -d
bayrakla nasıl başa çıkılacağı .
Alternatif olarak, belki daha iyi bir LC_COLLATE
kullanımın olabileceğini düşündüm . Ancak, bu işi yapmak gibi görünmüyor. Şu anda kullanıyorum LC_COLLATE="en_AU.UTF-8"
. Kontrol ettim /usr/share/i18n/locales/en_AU
(doğru dosya olup olmadığından emin değilim, ancak referans göremiyorum UTF-8
); Aşağıdakileri buldum.
LC_COLLATE
copy "iso14651_t1"
END LC_COLLATE
/usr/share/i18n/locales/iso14651_t1
içerir copy "iso14651_t1_common"
. Sonunda /usr/share/i18n/locales/iso14651_t1_common
içerir
<U002E> IGNORE;IGNORE;IGNORE;<U002E> # 47 .
Bu satırı sildim, koştum sudo locale-gen
ve bilgisayarımı yeniden başlattım. Ne yazık ki, bu hiçbir şeyi değiştirmedi.