En Fedora / Redhat / CentOS, el less
comando parece detectar mágicamente un archivo comprimido y descomprimirlo sobre la marcha, por lo que puede hacer:
less my_stuff.csv.gz
Acabo de notar que esto no funciona en Ubuntu 11
less my_stuff.csv.gz
"my_stuff.csv.gz" may be a binary file. See it anyway?
He estado examinando mis máquinas virtuales CentOS para ver si hay algo de magia de alias de shell que lo hace funcionar, pero no parece haberlo. ¿El soporte gzip está integrado en el binario de CentOS?
Si alguien sabe cómo funciona esto en CentOS y / o cómo se puede hacer que funcione en Ubuntu, lo agradecería.
Soy consciente de que puedo hacer
zcat my_stuff.csv.gz | less
pero eso haría que mi teclado se desgastara más rápido.
less myfile.txt.gz
funciona de forma inmediata .Respuestas:
less
no lo haga de manera predeterminada, pero hay una línea en el valor predeterminado~/.bashrc
que cambia el comportamiento predeterminado:Asegúrese de no eliminar ni comentar esta línea.
Con esto en su lugar, puede paginar archivos comprimidos y no comprimidos sin saberlo, como en
donde algunos de los registros se pueden comprimir y otros no.
Para la cuenta raíz accedida a través de
sudo
usted no puede hacer lo mismo, pero hay dos soluciones:sudo zless file*
sudo -E less file*
En el primer caso que utilicé
zless
, eso también funciona para archivos no comprimidos.En la segunda agregué la
-E
opción desudo
preservar las variables de entorno, para hacer menos trabajo como era de esperar.fuente
~/.bashrc
". El OP podría haber modificado el suyo~/.bashrc
.LESSOPEN=|/usr/bin/lesspipe.sh %s
Esto se realiza mediante un script que contiene[ -x /usr/bin/lesspipe.sh ] && export LESSOPEN="|/usr/bin/lesspipe.sh %s"
agregado a/etc/profile.d/less.sh
Menos no puede leer archivos comprimidos, puede verificarlo en su página de manual. Hay un script, instalado de manera predeterminada en Ubuntu y la mayoría de las distribuciones, llamado zless , que funciona como usted describió.
Entonces la respuesta es usar:
La diferencia entre Fedora y Ubuntu es que Fedora establece la variable de entorno LESSOPEN para forzar el argumento a través de lesspipe:
Tenga en cuenta que este comando no funcionará en Ubuntu.
fuente
zless
hay un script de shell que usaless
ylesspipe
en su núcleo, porless
lo que no puede ser un enlace simbólicozless
. No creo que sea diferente en otras distribuciones.