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


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>
    

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.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.