Cómo extraer un solo archivo de un archivo .tar / .tar.gz

Contenidos

Bash Shell

Si en algún momento se ha encontrado con un escenario en el que tiene un archivo de copia de seguridad tar enorme pero solo necesita extraer un solo archivo, hoy está leyendo el post correcto. ¿Por qué molestarse en extraer todo solo para tomar ese archivo?

En su lugar, solo necesita conocer la sintaxis para extraer un solo archivo de ese archivo. Y aquí está esa sintaxis:

tar --extract --file=<tarfile> <path/to/singlefile>

Entonces, a modo de ejemplo, si desea extraer xmlrpc.php de un archivo de WordPress descargado, usaría lo siguiente, puesto que todo dentro del archivo tar de wordpress está en una carpeta «wordpress».

tar --extract --file=latest.tar.gz wordpress/xmlrpc.php

Esto, de todos modos, está usando la sintaxis detallada. En lugar de utilizar --extract puedes utilizar -x, y en lugar de utilizar --file puedes utilizar -f, e inclusive puedes unirlos a ambos en un solo argumento como -xf en lugar de. (Nota: Históricamente, además necesitaría el -z opción para ejecutar gzip, pero en mis pruebas funciona bien sin él). Entonces, el comando más corto sería:

tar -xf latest.tar.gz wordpress/xmlrpc.php

Además puede extraer una sola carpeta con la misma sintaxis. A modo de ejemplo, para tomar toda la carpeta wordpress / wp-includes desde el interior del archivo de WordPress, simplemente haría lo siguiente:

tar -xf latest.tar.gz wordpress/wp-includes

Además hay un --wildcard parámetro que puede utilizar para extraer todos los archivos que coinciden con un patrón; a modo de ejemplo, si desea tomar todas las imágenes PNG de un archivo, puede hacer algo como esto:

tar -xf <tarball> --wildcards '*.png'

Ojalá hayas aprendido algo hoy.

Suscribite a nuestro Newsletter

No te enviaremos correo SPAM. Lo odiamos tanto como tú.