Guía del sysadmin vago: como listar el contenido de un .TAR o .TAR.GZ sin descomprimir el archivo.

Otro título sugerido: estamos todos de acuerdo, el que programó GNU/tar es un hijo de puta.

 

Acá va una que me he dado cuenta que mucha gente no conoce:

Cuando necesitas listar el contenido de un archivo .tar o necesitas editar un archivo contenido dentro de un archivo .tar/.tar.gz utilizando como único recurso la consola de comandos (comúnmente vía SSH) lo lógico sería primero descomprimir el .tar utilizando la línea de comandos, hacer las ediciones que considere necesarias, y luego volver a generar un archivo comprimido o exactamente lo mismo, pero extrayendo solamente el archivo a editar y luego volviendolo a poner en su lugar y buena suerte haciendo que te respete el path original dentro del TAR.

 

No se ustedes pero yo en particular, opino que a tar lo programaron con el culo en lugar de con la cabeza. Sin miedo a equivocarme me atrevería a decir que me tomó meses aprender los switches (parámetros/opciones) más utilizados, que son un puto dolor de huevos.

 

Hoy les vengo a traer la versión mejorada de todo el procedimiento, para que si alguna vez vuelven a tener que listar el contenido de un archivo comprimido o llegasen a tener que editar uno o más archivos en el interior de un archivo comprimido, no les vaya a pasar que:

  • Se quedan sin espacio en disco.
  • Se quedan sin inodos en disco.
  • Se quedan sin tiempo esperando a que se descomprima un billón de archivos.
  • Se quedan sin paciencia pasando el tar tvf con un pipe a grep.
  • Se quedan sin sistema operativo por descomprimir sobre el path equivocado.
  • La carguen de alguna otra manera todavía por determinar.

 

Accediendo al contenido de un .tar.gz con vim.

Accediendo al contenido de un .tar.gz como un campeón.

 

Bueno, resulta ser que:

 

Vim puede abrir archivos .tar, .tar.gz, etc.

 

Y no solo eso. Puede además editar el contenido de cualquiera de los archivos contenidos dentro del .tar o .tar.gz sin necesidad de extraerlo. Simplemente con desplazarse dentro de vim hasta encontrar el archivo que necesitás y darle enter ya te lo abre, te permite editarlo y te permite grabar los cambios (hint: la tecla : pone a vim en modo comandos, entonces :/string te sirve para buscar «string» dentro del .tar.gz).

 

Así que la próxima vez que necesites acceder al contenido de un .tar o .tar.gz a ver que tiene dentro y solamente tengas shell, ya sabés. No hace falta que te acuerdes como eran los parámetros que se le pasan a tar para que haga cosas. La próxima, ejecutá:

vim /paht/otropath/archivo.tar.gz

 

De nada.

 

2 comentarios

  1. es buena, pero los chetos fanáticos de la interfaz casi gráfica siempre usamos mc, que bucea como un campeón adentro de TAR, ZIP, RAR, etc

    1. A si? Nunca usé MC pero supongo que algún día podría darle una oportunidad. He visto en más de una oportunidad en algunos servidores en donde no soy el único, que otra persona se loguea, ejecuta MC y lo pierdo de vista, como que hizo todo lo que tenía que hacer sin salirse de ahí. Por algo será.

      Agendado para cuando el mundo pare.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *