40 votes

Comment puis-je décompresser tous les fichiers de manière récursive dans un répertoire cible?

Je voudrais savoir quelle est la commande à utiliser pour décompresser tous les fichiers dans un répertoire cible de manière récursive ? J'ai essayé d'utiliser la commande unzip mais cela n'a pas fonctionné.

J'ai essayé la commande de Dézipper tous les fichiers zip dans un dossier cible ?

86voto

heemayl Points 85741

gunzip a l'option -r. De man gunzip :

   -r --recursive
          Parcours de la structure des répertoires de manière récursive. Si l'un des noms de fichier spécifiés sur la ligne de commande sont des répertoires, gzip
descendra dans le répertoire et compressera tous les fichiers qu'il trouvera
(ou les décomprimera dans le cas de gunzip).

Donc, si vous voulez gunzip tous les fichiers compressés (gunzip peut actuellement décompresser les fichiers créés par gzip, zip, compress, compress -H ou pack) à l'intérieur du répertoire /foo/bar et de tous ses sous-répertoires :

gunzip -r /foo/bar

Cela prendra également en charge les noms de fichiers avec espaces.

19voto

A.B. Points 84870

En utilisant les commandes ci-dessous. Remplacez par le chemin de vos fichiers ZIP et par votre dossier de destination :

  • Pour les fichiers GZ

    find  -type f -name "*.gz" -exec tar xf {} -C  \;

    ou

    find  -type f -name "*.gz" -print0 | xargs -0 -I{} tar xf {} -C 
  • Pour les fichiers ZIP

    find  -type f -name "*.zip" -exec unzip {} -d  \;

    ou

    find  -type f -name "*.zip" -print0 | xargs -0 -I{} unzip {} -d

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X