Ls komutu için sayfalama nasıl etkinleştirilir?


34

lsDOS'ta olduğu gibi sayfalandırmayı etkinleştirme komutunun eşdeğer seçeneği dir /pde nedir?

Yanıtlar:


54

lsKendi içinde basit bir eşdeğeri yoktur , ancak lessherhangi bir komutun çıktısını ayrı sayfalar halinde biçimlendiren, satır veya sayfaya göre kaydırılabilen bir yardımcı program vardır :

ls -C | less

-CTetikleyici sütun görüntüleme nerede . Kullanım lahargümanlar olarak ( ls -lah) bir elde etmek l ile satırlı bir gösterge ine bir ll dosyaları görüntülenen ve (gizli olanlar dahil) h okunabilir filesizes Uman.

  • Renklerin düzgün görünmesini sağlamak için, --color=alwaysargümanı eklemelisiniz ls, ve -Rargümanı daha azına * ekleyin :

    ls -C --color=always | less -R

    alt metin
    bu 'ls -ah --color = her zaman | daha az -R '

Aksine more, lesssen çıkış ilerlemek izin verir. Ayrıca çok büyük listeler için biraz daha hızlı.

Boru şöyle çalışır:

Her programın giriş ve çıkışı vardır, bir boru bir programın (ls) çıkışını başka bir programın girişine (daha az) yönlendirir. Ve daha az basitçe, daha sonra biçimlendirdiği girişi bekler.

  • Daha eski bir okul dos eşdeğeri pg:

    ls | pg
    

Ayrıca

  • Çıktının yalnızca ilk veya son bölümünü görüntülemek için ls | headveya ls | taildüğmesini kullanın.
  • Kullanım watch "ls"değişiklikleri izlemek için bunu her birkaç saniyede bir güncelleyerek, Ekranı açık tutmak için
  • banner $(ls)Ekrandan çok uzakta oturuyorsanız kullanın . (;

  • Bunların hepsini hatırlamak için çok uzun bulursanız, bunun için bir takma ad ayarlayabilirsiniz :

    ~/.bash_aliasesBir metin editörüyle açın ve buna benzer bir şey ekleyin:

    alias lsp="ls -ah --color=always | less -R"
    

    (Bu, her yeni sanal terminal başlatıldığında çalıştırılan bir betiktir, tüm kalıcı takma adlarınızı orada ayarlamalısınız)

    Şimdi sadece yazabilir lspveya seçtiğiniz adı yazabilirsiniz .

    Takma adınıza daha fazla argüman iletebilmek istiyorsanız , bunun yerine bir fonksiyon tanımlamamız gerekir :

    lsp(){ ls -ah --color=always "$@" | less -R; }
    

    Bir fonksiyon, esas itibariyle bu gibi bakarak: name(){ commands; };argümanlar, kabul edebilir $1, $2, $3vb. "varsa her argüman"$@ anlamına gelir .

    Artık böyle bir şey çalıştırabilir lsp *.py, lsp -Cvb. Argümanları ls'ye iletildikleri noktaya yerleştiririz. Önemli komut olsa, daha azına $ * koyabilirdik. Tüm argümanları man ls(okunmaya değer) olarak görebilirsiniz.


*: Bunun sebebi, ne zaman bir boru taktıysanız, renk gösteremeyen bir Terminal (aslında diğer program) algılamasıdır. "--color = always", bunu görmezden gelmeye zorlar. -R anahtarı , renkleri düzgün bir şekilde çıkaran ekranı daha az boyamanızı sağlar .


teşekkürler büyük cevap, tam takma kısmı olan kısmı uzun komut satırı görünce aklıma geldi. diğer adı oluşturarak tek dezavantajı, * .pdf gibi bir joker karakter filtresi kullanmanın mümkün olmamasıdır? belki bunun için de bir çözüm var mı?
NES

Her şey mümkün ;-) Argümanlar hakkında biraz ekledim, bir şekilde daha önce düşünmedim.
Stefano Palazzo

2
Beklenenden daha fazlasını verdin :) detaylı cevap için teşekkürler. PS, bash ile balık arasında, bu takma ad argümanını geçme yönteminin balıkta çalışmasını bir şekilde önleyen farklılıklar olup olmadığını biliyor musunuz? burada çalışmak için argüman seçeneği olmayan takma adı aldım.
NES

1
Tamam, burada askubuntu.com/questions/19728/… yeni soru başlar, şimdiye kadarki cevaplarınız için tekrar teşekkürler.
NES

1
$*ve $@aynı şeyi yapın. Onlar için genişler $1 $2 $3 .... Bununla birlikte alıntılanan, "$@"genişlemeye devam "$1" "$2" "$3" ...ederken "$*"genişler "$1 $2 $3 ..."(yani, IFSayırıcı olarak ilk karakteri kullanarak tüm argümanlar bir dizgeye dönüşür ). mywiki.wooledge.org/BashGuide/Parameters
geirha

3

Sayfalandırma için bazı ls komutu olup olmadığından emin değilim. Ancak, bir boru kullanabilirsiniz ve lessbunun gibi:

ls | less

Ve çıkmak için q kullanın.


1

ls | lessVeya deneyin ls | more. İkincisi DOS sürümüne yakın.


1
Belki başka bir yöntem var mı? Dezavantajı benim için bir boru kullanırken kabuğun renklendirilmesinin aktif olmamasıdır?
NES

2
Deneyinls --color=always -C | less -R
FUZxxl
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.