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