Tar y gzip
Históricamente, la herramienta de archivo predeterminada en Linux es el comando tar. Originalmente significaba «Archivo de cintas», pero eso fue cuando las cintas eran el medio principal para mover los datos. El comando tar es muy flexible y puede crear, comprimir, actualizar, extraer y probar archivos de archivo. La extensión por defecto para un archivo tar sin comprimir (a veces llamado archivo tar o tarball) es.tar, mientras que los archivos tar comprimidos suelen usar la extensión.tgz (es decir, un archivo tar comprimido con zip de GNU). Tar ofrece varios métodos de compresión diferentes, incluyendo bzip2, zip, LZW y LZMA.
Para crear una tarball sin comprimir de todos los archivos de un directorio, utilice el siguiente comando:
tar cvf somefiles.tar *
c significa crear, v significa verboso (lo que significa que el comando tar listará los archivos que está archivando) y f indica a tar que el siguiente parámetro es el nombre del archivo de almacenamiento, en este caso «somefiles.tar». El comodín * significa todos los archivos en el directorio, como lo haría para la mayoría de los comandos de shell de Linux.
El tarball «somefiles.tar» se crea en el directorio local. Ahora se puede comprimir con una herramienta como gzip, zip, comprimir o bzip2. Por ejemplo:
gzip somefiles.tar
gzip comprime el tarball y añade la extensión.gz. Ahora en el directorio local hay un archivo somefiles.tar.gz en lugar del archivo somefiles.tar.
Este proceso de dos pasos, crear el tarball y comprimirlo, puede reducirse a un paso utilizando la compresión incorporada de tar:
tar cvzf somefiles.tgz *
Esto creará un tarball comprimido gzip llamado somefiles.tgz. La opción adicional z hace que el alquitrán comprima la bola de alquitrán. En lugar de z podría usar j ,J o Z, que le dice a tar que use compresión bzip2, xz y LZW respectivamente. xz implementa la compresión LZMA2, que es el mismo algoritmo que el popular programa Windows 7-Zip.
7-Zip
Es posible crear un archivo compatible con 7-Zip usando el comando 7zr. Para crear un archivo.7z use:
7zr a somefiles.7z *
Las opciones a significan añadir, es decir, añadir todos los archivos locales en el archivo comprimido algunos archivos.7z. Este archivo puede ser enviado a un usuario de Windows y éste podrá extraer los contenidos sin ningún problema.
No se recomienda utilizar 7zr para realizar copias de seguridad en Linux, ya que 7-zip no almacena la información del propietario/grupo sobre los archivos que archiva. Es posible usar 7zr para comprimir un tarball (que almacena la información del propietario). Puede hacer esto usando un tubo Unix de la siguiente manera:
tar cvf - * | 7zr a -si somefiles.tar.7z
El guión después de la opción f le dice a tar que envíe su salida a la salida stdout de Unix y no a un archivo. Ya que estamos usando una tubería, la salida de alquitrán será alimentada a 7zr que está esperando la entrada de stdin debido a la opción -si. 7zr creará un archivo llamado somefiles.tar.7z que contendrá el tarball que a su vez contiene los archivos. Si no está familiarizado con el uso de tuberías, puede crear un tarball estándar y comprimirlo con 7zr en dos pasos:
tar -cvf somefiles.tar * 7zr a somefiles.tar.7z somefiles.tar
Extracción
Extraer los archivos de estos diferentes archivos también es muy sencillo, aquí hay una rápida hoja de trucos para extraer los diferentes archivos creados anteriormente.
Para extraer un simple uso de tarball:
tar xvf somefiles.tar
Donde x significa extracto.
Para extraer un tarball comprimido utilice:
tar xvzf somefiles.tgz
La opción z le dice a tar que gzip fue usado para comprimir el archivo original. En lugar de z se puede usar j ,J o Z dependiendo del algoritmo de compresión utilizado cuando se creó el archivo.
Para extraer los archivos de un archivo 7-Zip use:
7zr e somefiles.tar.7z
Conclusión
Linux ofrece una amplia gama de comandos de compresión y archivo. Pruebe a experimentar con los comandos zip y xz, que funcionan de forma muy similar a las otras herramientas que se mencionan aquí. Si te quedas atascado, deberías intentar leer la página de manual, por ejemplo, man xz para obtener ayuda adicional.