Ls listesindeki uzun dosya adlarını kısaltabilir miyim


10

Çok uzun isimlerle bir dizi dosyam var. Lütfen, genel bir görünüm için daha fazla sütun almak için ls -C kullanmanın ve dosya adlarını kısaltmanın bir yolu var mı?

Veya küçük bir liste almanın daha iyi bir yolu var mı?

Yanıtlar:


9

Şöyle bir şey yapabilirsiniz:

ls | cut -c1-20 | columns -W "${COLUMNS:-80}"

sütun örneği

(bu columnsbir sGNU otojeninden). Veya:

ls | cut -c1-20 | column -c"${COLUMNS:-80}"

sütun örneğicolumnBSD'lerde veya bsdmainutilsDebian veya türevlerinde bulunduğu şekliyle kullanma .

zsh ayrıca bir şeyleri sütunlarda yazdırma desteği vardır, böylece aşağıdaki gibi bir işlev tanımlayabilirsiniz:

setopt extendedglob
c() print -rC$[COLUMNS/(($1)+2)] -- "${(M)@[2,-1]##?(#c0,$[$1])}"

Ve şu şekilde kullanın:

c 20 *.txt

Liste txt dosyalarını sütunlarda yazdırmak için 20 karaktere kadar kısaltılmış.

Ve biraz daha çılgın yapmak için şunları ekleyebilirsiniz:

command_not_found_handler() {(($1)) && c "$@"}

Bu şekilde şunları da yapabilirsiniz:

20 *

Ya da:

8+8 *

zsh örneği


Harika, teşekkürler. Fedora 12 sistemimde ls kullandım | kesim -c1-20 | sütunları -W "$ {COLUMNS: -80}" satırına ekledi ve tüm dosyalarımı tek bir ekrana getirdi.
Harry Weston

0

80 sütunlu bir ekran varsayarsak, kullanmayı seviyorum

ls -F | perl -lne 's/(.{34}).*/$1... /s ; print' | column -x | more

resim açıklamasını buraya girin

ls -FCyerine yeniliğe göre sıralamak için kullan


(Sidenote: benim lszaten kaydırıldığından dolayı kaydırılıyor ls -CF --color | more -r. Bunun en iyi uygulama olduğundan emin değilim ...)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.