Comment puis-je raser tous les fichiers récursivement dans un répertoire cible?

30

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

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

user2028856
la source

Réponses:

15

En utilisant les commandes ci-dessous. Remplacez <path_of_your_zips>par le chemin d'accès à vos fichiers ZIP et <out>par votre dossier de destination:

  • Pour les fichiers GZ

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

    ou

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

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

    ou

    find <path_of_your_zips> -type f -name "*.zip" -print0 | xargs -0 -I{} unzip {} -d <out>
    
UN B
la source
Est-ce que cela fonctionne avec les fichiers .gz?
user2028856
1
amélioré, maintenant oui :)
AB
2
Pourquoi ne pas -execaimer find . -type f -name "*.gz" -exec tar xzf {} -C <out> \;?
Elliott Frisch
1
ne fonctionne que pour les fichiers tarball, pas seulement pour les fichiers
z
1
les fichiers gzippés qui ne sont pas des fichiers tar donnent cette erreur:tar: This does not look like a tar archive
Pause jusqu'à nouvel ordre.
64

gunzipa l' -roption. De man gunzip:

   -r --recursive
          Travel  the directory structure recursively. If any of the 
file names specified on the command line are directories, gzip 
will descend into the directory and compress all the files it finds
there (or decompress them in  the  case  of gunzip ).

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

gunzip -r /foo/bar

Cela gérera également les noms de fichiers avec des espaces.

heemayl
la source