less
faz isso.
less /var/log/messages*
Se você direcionar a saída de less
para outro programa, less
se comportará como cat
ou gunzip -c
e não paginará a saída.
Existe um utilitário Linux comumente instalado que terá uma lista de arquivos e cat
ou gzip -d
(== zcat
) baseados no fato de o arquivo estar compactado?
Um exemplo de onde eu precisava disso é quando eu quero examinar os arquivos /var/log/messages
, incluindo os arquivos com login de log ( /var/log/messages-{date}.gz
) e o arquivo atual.
Provavelmente adicionarei algo como o seguinte ao meu ~/.zshrc
:
catz () {
local file
for file ; do
case $file in
*gz*) gzip -d < $file ;;
*bz*) bzip -d < $file ;;
*xz*|*lz*) xz -d < $file ;;
*) cat $file ;;
esac
done
}
Mas nem sempre estou em uma máquina em que tenho meu rc instalado, por isso esperava uma solução mais geral.
A "solução mais geral" que você está procurando é treinar seus dedos para digitar zcat -f …
em vez de tentar alternar entre zcat
e cat
.
A propósito:
zgrep
pesquisará os arquivos compactados e descompactados sem um sinalizador adicional. bzcat -f
se comporta como zcat -f
- ambos irão simplesmente produzir (sem descompactar) arquivos que não estão em seu formato de compactação nativo, em vez de entender que é um formato compactado diferente e sub-separar o programa de descompactação correto. Tags gzip cat linux file-management