Bir sıralamak Can ls adıyla listeleme?
Bir sıralamak Can ls adıyla listeleme?
Yanıtlar:
Ls, varsayılan olarak ada göre sıralar. Ne görüyorsun?
man ls devletler:
List information about the FILEs (the current directory by default). Sort entries alpha‐betically if none of -cftuvSUX nor --sort is specified.:
ls-c1belirtilmezse sıralamaz : bunu yapmanın bir yolu var mı? ( --sort=nameişe yaramıyor gibi görünüyor)
ls -la, görüyorum:, .bashrc - can - .config - Downloads - .local - tmpsıralama adı şöyle olacaktır:.bashrc - .config - .local - Downloads - can - tmp
Basit bir şey için, ls'yi sort ile birleştirebilirsiniz . Dosya adlarının bir listesi için:
ls -1 | çeşit
Bunları ters sırada sıralamak için:
ls -1 | sırala -r
ls | sort -n 1.1.1; 1.1.2; 1.1.3; 2.10.1; 2.10.15; 2.10.2; 2.10.20; 2.10.21; 2.1.1; 2.1.10; 2.1.15; 2.1.2; 2.1.3; 2.1.4; 10.1.1; 10.1.2; 10.1.3; 11.0.1; 11.0.2; 11.0.20; 11.0.21; 11.0.22; 2.10.15'ten 2.10.2'den önce görebileceğiniz gibi .
ls -1r.
lsfrom varsayılan olarak yerel ayara duyarlı bir sıralama coreutilsgerçekleştirir ve bu nedenle bazı durumlarda şaşırtıcı sonuçlar üretebilir (örneğin, arasında ve içinde sıralama yapar ). ASCIIbetical sıralama istiyorsanız, şunu kullanın:%foobarquuxLANG=en_US
LANG=C ls
LANGSıralamayı etkilemek, bu yazı bana çok yardımcı oluyor!
?bir terminal olduğunda her ascii olmayan karakter için çıktı (ls'den gelen kötü özellik, bir terminale çıktı verip vermediğini kontrol eder, borulama yaparken çalışır). Bunu "borulama" ile "düzeltebilir", C.UTF-8yerel ayarı (sisteminiz destekliyorsa) ve / veya -bbayrağı kullanabilirsiniz . Daha da iyisi, hiç kullanmayın ls, daha iyi kullanın ``
lstirelerden önce kısa çizgileri sıralar.
* Nix araçlarının güzelliği, bunları birleştirebilmenizdir:
ls -l | sort -k9,9
Çıktısı ls -lşöyle görünecek
-rw-rw-r-- 1 luckydonald luckydonald 532 Feb 21 2017 Makefile
-rwxrwxrwx 1 luckydonald luckydonald 4096 Nov 17 23:47 file.txt
Böylece , sütunu dosya adları olarak 9,9sütuna 9kadar sıralayın 9. Bu durumda aynı sütun olan nerede duracağınızı belirtmelisiniz. Sütunlar ile başlar 1.
Ayrıca, büyük / küçük harfleri yok saymak istiyorsanız --ignore-case, sıralama komutuna ekleyin .
-k9,9geliyor?
9aynı sütuna kadar sıralamak anlamına gelir 9. Normal bir lsçıktı şuna benzer: bu drwx------ 8 999 user 4.0K Feb 5 2017 file.txtnedenle sütun 9 dosya isimleridir. Vakayı yok saymak istiyorsanız, sırayla kullanın --ignore-case.
DİKKAT: "a", "Z" SONRASI:
$ touch A.txt aa.txt Z.txt
$ ls
A.txt Z.txt aa.txt
normalçözümleri burada deneyecek .
Yalnızca sayısal bir dizeyle farklı olan dosyalar, önünde bir ayırıcı olması koşuluyla bu numaraya göre sıralanabilir.
Bu durumda, aşağıdaki sözdizimi kullanılabilir:
ls -x1 file | sort -t'<char>' -n -k2
Misal:
ls -1 TRA*log | sort -t'_' -n -k2
TRACE_1.log
TRACE_2.log
TRACE_3.log
TRACE_4.log
TRACE_5.log
TRACE_6.log
TRACE_7.log
TRACE_8.log
TRACE_9.log
TRACE_10.log
Man sayfasından (bash ls için):
-CftuSUX veya --sort'tan hiçbiri yoksa girişleri alfabetik olarak sıralayın.
which lsolsa bile başarılı olursunuz . Bunun yerine, builtin lsbash'ta yapın ve bir hata alın.
whichher zaman bir yol döndürür. type lsKabuğun ne düşündüğünü belirlemek için kullanın ls(yerleşik, işlev, çalıştırılabilir).
Yardımcı lsprogram, POSIX.1şunları belirten IEEE Std 1003.1-2001 ( ) ile uyumlu olmalıdır :
22027: dizin ve dizin dışı işlenenleri, geçerli yerel ayardaki harmanlama sırasına göre ayrı ayrı sıralayacaktır.
26027: Varsayılan olarak, format belirtilmemiştir, ancak çıktı sembol adına göre alfabetik olarak sıralanacaktır :
- −A belirtilmişse kitaplık veya nesne adı
- Sembol adı
- Sembol türü
- Sembolün değeri
- Varsa, sembolle ilişkili boyut
.bashrcDosyanızı takma adlar için kontrol edin .
aliasMevcut tüm takma adları kontrol etmek için sadece yazılabilir.
In Debian Jessie, this works nice:
ls -lah --group-directories-first
# l=use a long listing format
# a=do not ignore entries starting with .
# h=human readable
# --group-directories-first=(obvious)
# Note: add -r for reverse alpha
# You might consider using lh by appending to ~/.bashrc as the alias:
~$ echo "alias lh='ls -lah --group-directories-first'" >>~/.bashrc
# -- restart your terminal before using lh command --