Ahora que sabemos cómo crear archivos y ver su contenido, aprendamos cómo extraer archivos de un archivo. Esto es útil cuando necesitas restaurar archivos de una copia de seguridad o cuando recibes un archivo de otra persona.
Para demostrar esto, primero simulemos un escenario en el que nuestra estructura de directorios original se pierde. Eliminaremos el directorio document_library
:
rm -rf ~/project/document_library
El comando rm
elimina archivos y directorios, y las opciones -rf
le indican que opere de forma recursiva y fuerce la eliminación sin solicitar confirmación. Ten cuidado al usar este comando en escenarios del mundo real, ya que elimina permanentemente los archivos.
Verifiquemos que el directorio se haya eliminado:
ls -la ~/project
No deberías ver document_library
en la lista, pero aún deberías ver tu archivo documents_archive.tar.gz
.
Ahora, extraigamos el archivo para restaurar nuestros archivos. La sintaxis básica para extraer con tar
es:
tar [opciones] [nombre-del-archivo]
Opciones comunes de extracción incluyen:
-x
: Extraer archivos de un archivo
-z
: Descomprimir utilizando gzip
-v
: Modo detallado (mostrar progreso)
-f
: Especificar el nombre de archivo del archivo
-C
: Cambiar al directorio especificado antes de extraer
Extraigamos nuestro archivo:
tar -xzvf ~/project/documents_archive.tar.gz -C ~/project
En este comando:
-x
le dice a tar que extraiga archivos
-z
le dice a tar que descomprima el archivo comprimido con gzip
-v
habilita el modo detallado, mostrando los archivos que se están extrayendo
-f ~/project/documents_archive.tar.gz
especifica el archivo
-C ~/project
le dice a tar que extraiga los archivos al directorio ~/project
Deberías ver una salida que enumera todos los archivos que se están extrayendo, similar a lo que viste cuando creaste el archivo.
Verifiquemos que nuestra estructura de directorios se haya restaurado:
ls -R ~/project/document_library
Deberías ver la misma estructura de directorios y archivos que creamos originalmente:
/home/labex/project/document_library:
references reports specifications
/home/labex/project/document_library/references:
guide.txt handbook.txt manual.txt
/home/labex/project/document_library/reports:
annual.txt monthly.txt quarterly.txt
/home/labex/project/document_library/specifications:
product.txt service.txt system.txt
Si solo quieres extraer archivos específicos de un archivo, puedes especificar sus rutas después del nombre del archivo. Por ejemplo, para extraer solo el directorio de informes:
mkdir -p ~/project/extracted_reports
tar -xzvf ~/project/documents_archive.tar.gz -C ~/project/extracted_reports document_library/reports
Esto extraerá solo el directorio reports
y su contenido al directorio extracted_reports
.
¡Felicidades! Has aprendido con éxito cómo extraer archivos de un archivo utilizando el comando tar
. Esta habilidad es esencial para realizar copias de seguridad, instalar software desde el código fuente y muchas otras operaciones de Linux.