{{tag>software archivage compression archive}}
====== 7-zip ======
Application open source sous licence **GNU LGPL**. Permet de gérer différents formats d'archives en ligne de commande.
===== Arguments / mutateurs =====
Note non exhaustive sur les options disponibles avec la ligne de commande.
==== Cibles et exclusions ====
Les cibles à sauvegarder peuvent être listées dans un fichier via l'utilisation de **@**. Les motifs d'exclusions peuvent être listés dans un fichier avec l'option **-x**. La syntaxe est la suivante:
c:\> 7z a -tzip c:\archive.zip @liste_a_sauvegarder.txt -x@motifs_exclusion.txt
Par défaut les fichiers utilisés en entrée (avec les options **-x** ou **-i**) doivent utiliser un jeu de caractères **UTF-8**. Pour spécifier un charset différent utiliser le mutateur **-scs**.
==== Spécificité de l'argument -r ====
Dans la plupart des cas cet argument n'est pas nécessaire. Dans l'exemple ci-dessous, sans l'argument -r, 7z compresse le dossier et tout son contenu y compris ses sous répertoires dans l'archive save.zip.
c:\> 7z a -tzip c:\backup\save.zip c:\var\a_sauvegarder
Si l'argument -r est spécifié, le conteneur parent est parcourus à la recherche du motif. Dans l'exemple ci-dessous, le dossier c:\var et tous les sous répertoires sont parcourus à la recherche du motif "a_sauvegarder" pour l'ajouter à l'archive:
c:\> 7z a -tzip -r c:\backup\save.zip c:\var\a_sauvegarder
Si des dossiers ''c:\var\tmp\a_sauvegarder'' ou ''c:\var\usr\exemple\a_sauvegarder'' existent, ils seront également ajoutés à l'archive.
Le processus de parcours de l'arborescence engendré par l'option -r a un impact sur le temps de la sauvegarde.
^ mutateur ^ Description |
| -r | La récursivité est activée. les motifs décrits sont recherchés dans le répertoire et les sous répertoires. |
| -r- | Option par défaut. La récursivité n'est pas active. |
| -r0 | La récursivité est active seulement pour les chemins incluant des jokers(wilcards). |
A propos des motifs:
* Le caractère **\** à la fin d'un chemin décrit forcément un dossier.
* Sans le caractère **\** en terminaison, le chemin peut désigner un dossier ou un fichier.
* Les dossiers comportant des espaces doivent être placés entre guillemets.
L'utilisation de l'argument -r prend tout son sens lorsqu'on souhaite par exemple sauvegarder un type particulier de fichier:
c:\> 7z a -tzip -r c:\backup\sources.zip c:\dev\*.c c:\dev\*.h c:\dev\*.cpp
Dans cet exemple, tous les fichiers d'extensions *.c, *.h, *.cpp seront archivés.
===== Exemples =====
Rechercher dans l'archive backup.zip.001 tous les fichiers ou dossiers contenant le mot 'choix':
7z l backup.zip.001 | grep -i choix
Extraire un fichier de l'archive (sans l'arborescence) dans le dossier /tmp
7z e -o/tmp backup.zip.001 'path/to/file/Choix menus.pdf'
===== Références =====
* https://superuser.com/questions/1194710/how-do-i-disable-7-zip-directory-scan-for-directories-which-are-not-meant-to-be