¿Quieres mejorar esta pregunta? Agrega detalles y aclara el problema editando esta publicación.
Cerrado hace 4 años.
Mejorar esta pregunta
¿Cómo puedo descomprimir y desarchivar un archivo .tar.gz usando cat, tar y gzip en una línea de comando? ¿Es esto posible?
Respuesta aceptada:
No hay necesidad de cat
o gzip
:
$ tar xvzf archive.tar.gz
La cadena de opciones le dice a tar
para extraer (x
) en modo detallado (v
) el comprimido (z
) archivar siguiendo la f
bandera.
Usando todo cat
, tar
y gzip
(lo cual es una tontería, no hagas esto ):
$ cat archive.tar.gz | gzip -d -c | tar xvf -
o
$ gzip -d -c archive.tar.gz | cat | tar xvf -
Cuando se le da -
como nombre de archivo, tar
leerá el archivo desde la entrada estándar.
Los últimos dos ejemplos sufren de lo que comúnmente se llama “Uso inútil de cat
“, ya que lo único cat
lo que hace es barajar los datos a la siguiente parte de la canalización.
Una versión ligeramente mejor, sin el cat
:
$ gzip -c -d archive.tar.gz | tar xvf -
En realidad, esto puede ser útil para saber cómo hacerlo en un sistema donde tar
no sabe cómo manejar archivos comprimidos.
La cadena de opción arcaica que he usado para tar
arriba, sin el guión (-
) delante de él, proviene de una época anterior a que el guión se usara comúnmente para especificar opciones de línea de comando. Otras utilidades que no usan la sintaxis de opciones regulares incluyen dd
y mt
, pero mientras que la mayoría de las implementaciones de tar
hoy entiende las nuevas opciones de guión, dd
por lo general no lo hace. El mt
El comando (que controla las operaciones de la cinta magnética) ha adquirido algunas opciones de guión (especialmente en Linux), pero la única parte no opcional de la línea de comandos sigue siendo el comando que le gustaría ejecutar en la unidad, como rewind
o eof
.