Comment compresser et décompresser des fichiers à l'aide de tar sous Linux

Contenu

Tar est plus qu'un simple utilitaire d'archivage: tar est livré avec d'excellentes fonctions intégrées, que le posibilitan comprimir y descomprimir archivos, al mismo tiempo que los archiva. ¡Aprenda todo al respecto en este post y más!

Qu'est que c'est le goudron y ¿cómo lo instalo?

Según el le goudron Comment empêcher l'impression recto verso d'être la valeur par défaut sur macOS (al que puede tener acceso escribiendo man tar una vez instalado), tar es una utilidad de archivo. Es compatible con muchas funciones, incluida la compresión y descompresión de archivos sobre la marcha al archivarlos. Comencemos instalando le goudron:

Installer le goudron sur votre distribution Linux basée sur Debian / Apte (comme Ubuntu et Mint), exécutez la commande suivante dans votre terminal:

sudo apt install tar

Installer le goudron sur votre distribution Linux basée sur RedHat / Miam (comme RHEL, Centos et Fedora), exécutez la commande suivante dans votre terminal:

sudo yum install tar

Ensuite, crearemos algunos datos de muestra:

test mkdir; cd test
touch a b c d e f 
echo 1 > une; écho 5 > e; echo '22222222222222222222' > b

Configurer des exemples de données à compresser

Ici, nous créons un test de répertoire et créons six fichiers vides en utilisant le touch commander. Nous ajoutons également des numéros aux fichiers. une, moi, et B, même si remarquablement fichier B a des données répétitives, que se comprimirán bien.

Pour plus d'informations sur le fonctionnement de la compression, vous pouvez consulter notre Comment fonctionne la compression de fichiers? Publier.

Créer un fichier non compressé

Création simple d'archives tar non compressées

tar -hcf tous les_fichiers.tar *
ls -l | grep -v total | ah '{imprimer $5"toctets pour: "$9}' | trier -n

Ici, nous créons un fichier non compressé en utilisant le tar -hcf all_files.tar * commander. Jetons un coup d'œil aux alternatives utilisées dans cette commande.

En premier lieu, ont -h que même s'il n'est pas nécessaire dans cette circonstance particulière, Je recommande de toujours inclure dans votre tar commandes. Cette option signifie déréférencement, ce qui supprimera la référence (ou continuera) liens symboliques, archiver et vider les fichiers vers lesquels ils pointent.

Ensuite, nous avons le -c et -f options. Veuillez noter qu'ils ne sont écrits qu'en conjonction avec le - au -h, En d'autres termes, au lieu de spécifier un autre -, nous les étiquetons simplement dans les autres options abrégées. rapide et facile.

Les -c prise en charge des options pour créer un nouveau fichier. Notez que, par défaut, les répertoires sont archivés de manière récursive, à moins que l'option –no-recursion ne soit également utilisée. Les -f L'option permet de spécifier le nom du fichier. Pour cela, doit être le dernier de notre chaîne d'alternatives (puisque vous avez besoin d'une option) afin que nous puissions ajouter le nom du fichier d'archive directement derrière celui-ci. À l'aide de tar -fch test.tar * ne fonctionnera pas:

Les options abrégées qui nécessitent une option ne peuvent pas être placées devant

Después de que se genera el alquitrán, usamos un ls salida que nos muestra claramente el número de bytes por archivo. Comme tu peux le voir, el archivo tar es mucho más grande que todos nuestros archivos combinados. Los archivos simplemente se están archivando y algunos gastos generales para le goudron se está agregando.

Como nota al margen interesante, además podemos ver con qué tipos de archivos estamos trabajando simplemente usando el file commande à l'invite de commande:

file c
file b
file all_files.tar

Usando archivo para ver el tipo de archivo

Créer un fichier non compressé

Un algorithme de compression très courant est GZIP. Ajoutons l'option pour le même (-z) à notre chaîne d'alternatives de ligne de commande abrégée et voyez comment cela affecte la taille du fichier:

tar -zhcf tous les_fichiers.tar.gz [un F]
ls -l | grep -v total | ah '{imprimer $5"toctets pour: "$9}' | trier -n

Comparaison de la taille d'un fichier compressé par rapport à un fichier non compressé

Cette fois, nous spécifions une expression régulière pour n'utiliser que les fichiers nommés une pour F, empêcher le tar commande pour inclure le all_files.tar fichier à l'intérieur du nouveau all_files.tar.gz Record!

Voir comment Regex est réellement utilisé? et Modifier le texte en utilisant regex en utilisant sed si vous voulez en savoir plus sur regex.

Nous incluons également le -z option qui utilisera la compression GZIP pour compresser le résultat .tar fichier une fois le vidage des données terminé. C'est formidable de voir que nous nous retrouvons avec un fichier de 186 octets, ce qui nous dit que, dans cette circonstance, les tar L'en-tête / frais généraux d'environ 10 Ko peut être très bien compressé.

La taille totale du fichier est 7,44 fois plus grand que la taille totale du fichier, mais peu importe, puisque cet exemple fictif n'est pas représentatif de la compression de gros fichiers où vous voyez presque toujours des gains plutôt que des pertes, à moins que les données ne soient pré-compressées ou dans un format tel qu'elles ne puissent pas être facilement condensées à l'aide d'une gamme d'algorithmes. Même comme ça, un algorithme (comme GZIP) peut être mieux qu'un autre (à titre d'exemple BZIP2), et vice versa, pour différents ensembles de données.

Obtenez plus d'octets grâce à la compression de haut niveau

Pouvons-nous rendre le fichier encore plus petit? Et. Nous pouvons déterminer l'option de compression maximale de GZIP en utilisant le -I option une tar qui nous permet de spécifier un programme de compression à utiliser (avec merci à débordement de pile idées d'utilisateurs man42):

tar -I 'gzip -9' -hcf tous_fichiers.tar.gz [un F]
ls -l | grep -v total | ah '{imprimer $5"toctets pour: "$9}' | trier -n

Utilisation de l'option -I pour tar pour spécifier un calendrier de compression

Ici, nous précisons -I 'gzip -9' comme programme de compression à utiliser, et nous laissons tomber le -z option (puisque nous spécifions maintenant un programme personnalisé spécifique à utiliser au lieu d'utiliser la configuration GZIP intégrée de tar). Le résultat est que nous avons 12 octets de moins grâce à une meilleure tentative de compression (mais généralement plus lent) (au niveau -9) par GZIP.

En termes générales, plus la compression est rapide (niveau inférieur de tentatives de compression, En d'autres termes, -1), plus grande taille de fichier. ET, plus la compression est lente (plus haut niveau de tentatives de compression, En d'autres termes, -9), plus petit est le fichier. Vous pouvez déterminer vos propres préférences en faisant varier le niveau de compression du -1 (Rapide) une -9 (lent)

Autres programmes de compression

Il existe deux autres algorithmes de compression courants qui peuvent être explorés et testés. (différentes options d'algorithme donnent également des résultats de taille différente et peuvent avoir des options de compression supplémentaires), et c'est ça bzip2, qui peut être utilisé en spécifiant le -j option une tar, et XZ qui peut être utilisé en spécifiant le -J option.

Alternativement, vous pouvez utiliser le -I commande pour déterminer les alternatives de compression maximales pour bzip2 (-9):

exemple de programme de compression bzip -9

ET -9e pour xz:

exemple de programme de compression xz -9e

Comme tu peux le voir, les résultats sont moins bons dans cette circonstance que si l'algorithme GZIP quelque peu standard est utilisé. Même comme ça, les bzip2 et xz les algorithmes peuvent montrer des améliorations avec d'autres ensembles de données.

Décompresser un fichier

Décompresser un fichier est très simple, quelle que soit la méthode d'origine pour le compresser, et tant que ledit algorithme de compression est présent sur votre ordinateur. Par exemple, si l'algorithme de compression d'origine était bzip2 (indiqué par un .bz2 extension du nom du fichier tar), alors tu voudras avoir fait sudo apt install bzip2 (O sudo yum install bzip2) en su computadora de destino que es descomprimir el archivo.

rm a b c d e f
tar -xf all_files.tar.gz
ls

Descomprimir un archivo tar comprimido (o sin comprimir)

Simplemente especificamos -x pour expandir o descomprime nuestro all_files.tar.gz e indique cuál es el nombre del archivo usando de nuevo el -f opción de taquigrafía como antes.

Comprimir archivos puede ayudarlo a ahorrar mucho espacio en sus dispositivos de almacenamiento y saber cómo usarlos. tar en combinación con las alternativas de compresión disponibles le ayudará a hacerlo. Une fois que le fichier doit être réextrait, c'est facile à faire tant que le bon logiciel de décompression est disponible sur l'ordinateur utilisé pour décompresser ou extraire les données de votre archive. Prendre plaisir!

Abonnez-vous à notre newsletter

Nous ne vous enverrons pas de courrier SPAM. Nous le détestons autant que vous.