GNU/Linux >> Tutoriels Linux >  >> Linux

Comment compresser tous les fichiers dans tous les sous-répertoires de bash

Pas besoin de boucles ou quoi que ce soit de plus que find et gzip :

find . -type f ! -name '*.gz' -exec gzip "{}" \;

Cela trouve tous les fichiers normaux dans et en dessous du répertoire courant dont les noms ne se terminent pas par le .gz extension (c'est-à-dire tous les fichiers qui ne sont pas déjà compressés). Il invoque gzip sur chaque fichier individuellement.

Modifier, basé sur le commentaire de user unknown :

Les accolades ({} ) sont remplacés par le nom du fichier, qui est passé directement, en un seul mot, à la commande suivant -exec comme vous pouvez le voir ici :

$ touch foo
$ touch "bar baz"
$ touch xyzzy
$ find . -exec echo {} \;

./foo
./bar baz
./xyzzy

find . -type f | while read file; do gzip "$file"; done

Je préférerais gzip -r ./ qui fait la même chose mais en plus court.


Linux
  1. Comment trouver tous les fichiers liés à un logiciel ?

  2. Comment compresser tous les fichiers ou des fichiers spécifiques sous Linux

  3. Comment compresser tous les fichiers de tous les sous-répertoires dans un fichier compressé dans bash

  4. Comment trouver/lister tous les fichiers uniques dans deux répertoires ?

  5. Comment trouver tous les fichiers de zéro octet dans le répertoire

Comment trouver des fichiers sous Linux

Comment trouver un fichier sous Linux dans tous les répertoires de manière récursive

Comment condenser les sous-répertoires ?

Comment trouver des fichiers dans Debian

gzip tous les fichiers sans les supprimer

Comment lister tous les fichiers d'une partition sous Linux ?