Table des matières

, , , , , ,

tar

Lister le contenu de l'archive

L'option -t permet de lister le contenu de l'archive:

tar -tvf archive.tar
 
# Equivalent
tar --list --verbose --file=archive.tar

Changer le répertoire cible

Par défaut le tar est extrait dans le répertoire courant, l'option -C ou --directory permet de définir dans quel répertoire sera extraite l'archive:

tar -C /path/to/target/directory -xvf archive.tgz

Décompresser sans les répertoires parents

Il peut être intéressant de décompresser une archive sans tenir compte de certains répertoires parents.

L'archive test.tar.bz2 a le contenu suivant:

tar -tvf mon_prog.tar.bz2 
drwxrwxr-x yoann/yoann       0 2020-04-16 09:43 opt/mon_prog/
-rw-rw-r-- yoann/yoann       8 2020-04-16 09:43 opt/mon_prog/README.txt
-rwxr-xr-x yoann/yoann      11 2020-04-16 09:43 opt/mon_prog/mon_script.sh

Si on décompresse directement cette archive dans le répertoire /usr/local/ par exemple, l'arborescence ./opt/mon_prog/ sera recréée, on obtiendra donc

/usr/local/opt/mon_prog/
├── mon_script.sh
└── README.tx

Pour décompresser les fichier dans /usr/local/ sans tenir compte du dossier de plus haut niveau:

tar -xjvf test.tar.bz2 --directory=/usr/local/ --strip-components=1

L'argument --strip-components permet d'agir sur les noms de fichiers à la décompression et de retirer un ou plusieurs répertoires conteneurs.

On obtient dans ce cas:

/usr/local/mon_prog/
├── mon_script.sh
└── README.tx

Références