
RHEL 10 - Archivage et compression
Contexte pour le lab
- Création d'un dossier "archive" contenant 10 fichiers de 2Mo et d'un dossier vide
mkdir dossierlab && touch dossierlab/fichierlab{1..10} for file in {1..10}; do dd if=/dev/zero of=dossierlab/fichierlab$file bs=1M count=2; done mkdir dossierx
Archives simples
-
Création d'une archive
tar -cf archive.tar dossierlab/ -
Examiner le contenu d'une archive
tar -tf archive.tar -
Extraire une archive dans un dossier
tar -xvf archive.tar -C dossierx/
compression d'une archive
- Avec gzip (rapide, compression standard)
compresser
gzip archive.tar # -k pour conserver l'originale
Décompresser
gunzip archive.tar.gz # -k pour conserver l'originale
- Avec bzip2 (lent, meilleure compression)
compresser
bzip2 archive.tar # -k pour conserver l'originale
Décompresser
bunzip2 archive.tar.bz2 # -k pour conserver l'originale
Commandes combinées
-
Créer une archive compressée avec gzip
tar -czf archive.tar.gz dossierlab/ -
Créer une archive compressée avec bzip2
tar -cjf archive.tar.bz2 dossierlab/ -
Créer une archive compressée avec xz
tar -cJf archive.tar.xz dossierlab/ -
Observation des performances de compression
ls -la | grep archive-rw-r--r--. 1 root root 20981760 11 déc. 14:28 archive.tar -rw-r--r--. 1 root root 262 11 déc. 14:28 archive.tar.bz2 -rw-r--r--. 1 root root 21085 11 déc. 14:28 archive.tar.gz -rw-r--r--. 1 root root 3364 11 déc. 14:28 archive.tar.xz -
Décompression d'une archive compressée dans un dossier (quelque soit la méthode de compression)
tar -xf archive.tar.xz -C dossierx
Manipulations avancées
-
Ajouter un fichier à une archive non-compressée
touch dossierlab/fichierlab11 && dd if=/dev/zero of=dossierlab/fichierlab11 bs=1M count=2 tar -rf archive.tar dossierlab/fichierlab11 -
Extraire un fichier d'une archive en tronquant la structure des dossiers
tar -xf archive.tar.xz dossierlab/fichierlab1 --strip-components=1 -
Archiver et restaurer en conservant les permissions et le contexte SELinux
tar --selinux -cpf htmlZ.tar /var/www/html/tar --selinux -xpf htmlZ.tar -C /
Sources principales:
- https://www.redhat.com/en/blog/taming-tar-command
man tar
