Unter Fedora / Redhat / CentOS less
scheint der Befehl eine gezippte Datei auf magische Weise zu erkennen und sie sofort zu dekomprimieren.
less my_stuff.csv.gz
Ich habe gerade bemerkt, dass dies unter Ubuntu 11 nicht funktioniert
less my_stuff.csv.gz
"my_stuff.csv.gz" may be a binary file. See it anyway?
Ich habe meine CentOS-VMs untersucht, um festzustellen, ob es eine Shell-Alias-Magie gibt, die funktioniert, aber es scheint keine zu geben. Ist die gzip-Unterstützung nur in die CentOS-Binärdatei integriert?
Wenn jemand weiß, wie das unter CentOS funktioniert und / oder wie es unter Ubuntu funktioniert, wäre ich dankbar.
Mir ist bewusst, dass ich das kann
zcat my_stuff.csv.gz | less
Aber dadurch würde sich meine Tastatur schneller abnutzen.
less myfile.txt.gz
funktioniert es sofort.Antworten:
less
Tun Sie das nicht standardmäßig, aber es gibt eine Zeile in der Standardeinstellung~/.bashrc
, die das Standardverhalten ändert:Achten Sie darauf, diese Zeile nicht zu entfernen oder zu kommentieren.
Mit dieser Option können Sie gezippte und nicht gezippte Dateien wie in blättern, ohne es zu wissen
Hier können einige der Protokolle komprimiert und andere nicht komprimiert werden.
Für das Root-Konto, auf das über zugegriffen wird
sudo
, können Sie nicht dasselbe tun, es gibt jedoch zwei Problemumgehungen:sudo zless file*
sudo -E less file*
Im ersten Fall habe ich verwendet
zless
, das funktioniert auch für nicht gezippte Dateien.In der zweiten habe ich die
-E
Option hinzugefügtsudo
, Ihre Umgebungsvariablen beizubehalten, um weniger Arbeit zu machen, als Sie erwarten würden.quelle
~/.bashrc
". Das OP hätte sein eigenes modifizieren können~/.bashrc
.LESSOPEN=|/usr/bin/lesspipe.sh %s
Dies geschieht durch ein Skript, das[ -x /usr/bin/lesspipe.sh ] && export LESSOPEN="|/usr/bin/lesspipe.sh %s"
hinzugefügt zu/etc/profile.d/less.sh
Weniger können keine gezippten Dateien lesen, Sie können dies auf der Manpage überprüfen. Es gibt ein Skript namens zless , das standardmäßig in Ubuntu und den meisten Distributionen installiert ist und so funktioniert, wie Sie es beschrieben haben.
Die Antwort lautet also:
Der Unterschied zwischen Fedora und Ubuntu besteht darin, dass Fedora die Umgebungsvariable LESSOPEN gesetzt hat , um das Argument durch lesspipe zu erzwingen:
Beachten Sie, dass dieser Befehl in Ubuntu nicht funktioniert.
quelle
zless
gibt es ein Shell-Skript, dasless
undlesspipe
in seinem Kern verwendet, alsoless
keinen Symlink zuzless
. Ich denke nicht, dass es in anderen Distributionen anders ist.