“Daha az” otomatik olarak gzip dosyalarını açmaz


55

Fedora / Redhat / CentOS'ta lesskomut, gzipli bir dosyayı sihirli bir şekilde algılar ve anında sıkıştırmasını açar, böylece şunları yapabilirsiniz:

less my_stuff.csv.gz

Bunun Ubuntu 11'de işe yaramadığını farkettim.

less my_stuff.csv.gz
"my_stuff.csv.gz" may be a binary file.  See it anyway? 

CentOS VM'leri inceledim, çalışmasını sağlayacak bazı takma ad sihirbazı olup olmadığını görmek için incelemeye başladım. Gzip desteği, CentOS binary'ine henüz kurulmuş mu?

Bunun CentOS'ta nasıl çalıştığını ve / veya Ubuntu'da çalışmak için nasıl yapıldığını bilen biri varsa minnettar olurum.

Yapabileceğimin farkındayım

zcat my_stuff.csv.gz | less

ama bu klavyemin daha çabuk yıpranmasına neden olur.


2
Ubuntu'da 16.04 kullanıma hazır less myfile.txt.gzçalışıyor.
Pablo A,

Yanıtlar:


42

lessbunu varsayılan olarak yapmayın, ancak varsayılan ~/.bashrcolarak varsayılan davranışı değiştiren bir çizgi var :

[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"

Bu satırı kaldırmadığınızdan veya yorum yapmadığınızdan emin olun.
Bu uygulama sayesinde, sıkıştırılmış veya sıkıştırılmış dosyaları, bilmeden, sayfalar halinde

less /var/log/dpkg.log*

kütüklerin bazıları sıkıştırılmış olabilir, bazıları da sıkıştırılmamış olabilir.

Size erişilen kök hesap sudoiçin aynı şeyi yapamazsınız, ancak iki geçici çözüm vardır:

  1. sudo zless file*
  2. sudo -E less file*

Kullandığım ilk durumda zless, bu sıkıştırılmış dosya için de işe yarıyor.
İkincisine , ortam değişkenlerinizi korumak, beklediğinizden daha az iş yapmak için -Eseçenek ekledim sudo.


1
İlk satır varsayılan olarak .bashrc'de mevcut değil mi? Eklemeyi hatırlayamıyorum ve burada sorunsuz çalışıyor (10.4).
johanvdw 23:11

2
@johanvdw: evet öyle: dedim "varsayılanda bir çizgi var ~/.bashrc". OP, kendi düzenini değiştirebilirdi ~/.bashrc.
enzotib 23:11

Sadece düşündüm ki, bu işletim sisteminin çalıştığı yerde bahsettiğimde, env'de aşağıdakileri göreceksiniz: LESSOPEN=|/usr/bin/lesspipe.sh %sBu,[ -x /usr/bin/lesspipe.sh ] && export LESSOPEN="|/usr/bin/lesspipe.sh %s"/etc/profile.d/less.sh
KHobbits 'te

25

Daha az gzip dosyalarını okuyamıyor, man sayfasından kontrol edebilirsiniz. Varsayılan olarak Ubuntu'da yüklü bir betik vardır ve tanımladığınız gibi çalışan, zless adı verilen birçok dağıtım vardır .

Yani cevap kullanmaktır:

zless my_stuff.csv.gz

Fedora ve Ubuntu arasındaki fark, Fedora'nın argümanı lesspipe ile zorlamak için LESSOPEN çevre değişkenini ayarlamasıdır :

echo $LESSOPEN
||/usr/bin/lesspipe.sh %s

Bu komutun Ubuntu'da çalışmayacağını unutmayın.


Ubuntu'da zless, kullanan lessve lesspipeözünde kullanılan bir kabuk betiği olduğundan, lessbir bağlantı olamaz zless. Diğer dağıtımlarda farklı olduğunu düşünmüyorum.
enzotib 23:11

Oh ... sen benim Fedora kurulumumu başlattın;). Düzenlenen.
Javier Rivera
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.