{{tag>sysadmin linux cli compression archivage syntaxe commande}} ====== 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 ===== * https://www.tecmint.com/18-tar-command-examples-in-linux/ * https://askubuntu.com/questions/45349/how-to-extract-files-to-another-directory-using-tar-command * https://unix.stackexchange.com/questions/35311/how-do-you-extract-a-single-folder-from-a-large-tar-gz-archive