Comando tar en Linux
El comando tar (archivo de cinta) se usa para crear y extraer archivos en Linux. Puede comprimir y almacenar múltiples archivos en un solo archivo.
Las extensiones de archivo que se ven comúnmente son .tar.gz y .tar.bz2, que es un archivo tar comprimido aún más usando los algoritmos gzip o bzip respectivamente.
En este tutorial, veremos ejemplos simples del uso del comando tar para realizar trabajos diarios de creación y extracción de archivos en servidores o escritorios Linux.
Usando el comando tar
El comando tar está disponible de forma predeterminada en la mayoría de los sistemas Linux y no necesita instalarlo por separado.
With tar there are 2 compression formats, gzip and bzip. The "z" option specifies gzip and "j" option specifies bzip. It is also possible to create uncompressed archives.
1. Extraer un archivo tar.gz
Bueno, el uso más común es extraer archivos tar. El siguiente comando extraerá los archivos de un archivo tar.gz
$ tar -xvzf tarfile.tar.gz
Aquí hay una explicación rápida de los parámetros utilizados -
x - Extract files v - verbose, print the file names as they are extracted one by one z - The file is a "gzipped" file f - Use the following tar archive for the operation
Esas son algunas de las opciones importantes para memorizar
Extraer archivos tar.bz2/bzip
Los archivos con la extensión bz2 se comprimen con el algoritmo bzip y el comando tar también puede manejarlos. Utilice la opción j en lugar de la opción z.
$ tar -xvjf archivefile.tar.bz2
2. Extraer archivos a un directorio o ruta específica
Para extraer los archivos a un directorio específico, especifique la ruta con la opción "-C". Tenga en cuenta que es una C mayúscula.
$ tar -xvzf abc.tar.gz -C /opt/folder/
Sin embargo, primero asegúrese de que el directorio de destino exista, ya que tar no creará el directorio por usted y fallará si no existe.
3. Extraer un solo archivo
Para extraer un solo archivo de un archivo, simplemente agregue el nombre del archivo después del comando como este
$ tar -xz -f abc.tar.gz "./new/abc.txt"
Se puede especificar más de un archivo en el comando anterior como este
$ tar -xv -f abc.tar.gz "./new/cde.txt" "./new/abc.txt"
4. Extrae múltiples archivos usando comodines
Los comodines se pueden usar para extraer un montón de archivos que coincidan con los comodines dados. Por ejemplo, todos los archivos con extensión ".txt".
$ tar -xv -f abc.tar.gz --wildcards "*.txt"
5. Listar y buscar contenidos del archivo tar
Si solo desea enumerar el contenido del archivo tar y no extraerlo, use la opción "-t". El siguiente comando imprime el contenido de un archivo tar comprimido con gzip,
$ tar -tz -f abc.tar.gz ./new/ ./new/cde.txt ./new/subdir/ ./new/subdir/in.txt ./new/abc.txt ...
Canalice la salida a grep para buscar un archivo o menos comando para navegar por la lista. El uso de la opción detallada "v" imprimirá detalles adicionales sobre cada archivo.
Para archivos tar.bz2/bzip use la opción "j"
Use el comando anterior en combinación con el comando grep para buscar en el archivo. ¡Simple!
$ tar -tvz -f abc.tar.gz | grep abc.txt -rw-rw-r-- enlightened/enlightened 0 2015-01-13 11:40 ./new/abc.txt
6. Crear un archivo tar/tar.gz
Ahora que hemos aprendido cómo extraer archivos tar existentes, es hora de comenzar a crear nuevos. Se le puede indicar al comando tar que coloque los archivos seleccionados en un archivo o en un directorio completo. Estos son algunos ejemplos.
El siguiente comando crea un archivo tar usando un directorio, agregando todos los archivos y subdirectorios también.
$ tar -cvf abc.tar ./new/ ./new/ ./new/cde.txt ./new/abc.txt
El ejemplo anterior no crea un archivo comprimido. Solo un archivo simple, que junta varios archivos sin ninguna compresión real.
Para comprimir, use la opción "z" o "j" para gzip o bzip respectivamente.
$ tar -cvzf abc.tar.gz ./new/
The extension of the file name does not really matter. "tar.gz" and tgz are common extensions for files compressed with gzip. ".tar.bz2" and ".tbz" are commonly used extensions for bzip compressed files.
7. Solicite confirmación antes de agregar archivos
Una opción útil es "w", que hace que tar solicite confirmación para cada archivo antes de agregarlo al archivo. Esto puede ser útil a veces.
Solo se agregarán aquellos archivos que reciban una respuesta afirmativa. Si no ingresa nada, la respuesta predeterminada sería "No".
# Add specific files $ tar -czw -f abc.tar.gz ./new/* add ‘./new/abc.txt’?y add ‘./new/cde.txt’?y add ‘./new/newfile.txt’?n add ‘./new/subdir’?y add ‘./new/subdir/in.txt’?n # Now list the files added $ tar -t -f abc.tar.gz ./new/abc.txt ./new/cde.txt ./new/subdir/
8. Agregar archivos a archivos existentes
La opción r se puede usar para agregar archivos a archivos existentes, sin tener que crear otros nuevos. Aquí hay un ejemplo rápido
$ tar -rv -f abc.tar abc.txt
Files cannot be added to compressed archives (gz or bzip). Files can only be added to plain tar archives.
9. Agregar archivos a archivos comprimidos (tar.gz/tar.bz2)
Ya se mencionó que no es posible agregar archivos a archivos comprimidos. Sin embargo, todavía se puede hacer con un simple truco. Use el comando gunzip para descomprimir el archivo, agregue el archivo al archivo y comprímalo nuevamente.
$ gunzip archive.tar.gz $ tar -rf archive.tar ./path/to/file $ gzip archive.tar
Para archivos bzip, use los comandos bzip2 y bunzip2 respectivamente.
10. Copia de seguridad con alquitrán
Un escenario real es hacer una copia de seguridad de los directorios a intervalos regulares. El comando tar se puede programar para realizar tales copias de seguridad a través de cron. Aquí hay un ejemplo -
$ tar -cvz -f archive-$(date +%Y%m%d).tar.gz ./new/
Ejecute el comando anterior a través de cron y seguirá creando archivos de respaldo con nombres como -
'archive-20150218.tar.gz'.
Por supuesto, asegúrese de que el espacio en disco no se desborde con archivos cada vez más grandes.
11. Verificar archivos de almacenamiento durante la creación
La opción "W" se puede utilizar para verificar los archivos después de crear archivos. Aquí hay un ejemplo rápido.
$ tar -cvW -f abc.tar ./new/ ./new/ ./new/cde.txt ./new/subdir/ ./new/subdir/in.txt ./new/newfile.txt ./new/abc.txt Verify ./new/ Verify ./new/cde.txt Verify ./new/subdir/ Verify ./new/subdir/in.txt Verify ./new/newfile.txt Verify ./new/abc.txt
Tenga en cuenta que la verificación no se puede realizar en archivos comprimidos. Solo funciona con archivos tar sin comprimir.
Conclusión
Además del comando tar, hay muchos otros comandos disponibles en la línea de comandos de Linux que se pueden usar para comprimir y empaquetar archivos en un archivo. Por ejemplo, el comando zip y unzip también se puede usar para crear archivos comprimidos.
El comando zip también es compatible con el comando zipcloak que se puede usar para crear archivos .zip protegidos con contraseña. El formato tar no admite ningún tipo de cifrado. Si desea crear archivos tar protegidos con contraseña, utilice ccrypt comando para cifrar el archivo .tar o .tar.gz.
Eso es todo por ahora. Para obtener más información, consulte la página del manual para el comando tar, con "man tar". O ejecute "tar --help" para ver la lista de todas las opciones admitidas por el comando tar.