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.