Comment pouvons-nous GZip chaque fichier séparément?
Je ne veux pas avoir tous les fichiers dans un gros tar.
Vous pouvez utiliser gzip *
Remarque:
-k
(--keep
) option pour conserver les fichiers d'origine.Réponse simple et très rapide qui utilisera tous vos cœurs CPU en parallèle:
parallel gzip ::: *
GNU Parallel est un outil fantastique qui devrait être utilisé beaucoup plus dans ce monde où les processeurs n'obtiennent que plus de cœurs plutôt que plus de vitesse. Il y a des tas d'exemples que nous ferions tous bien de prendre 10 minutes pour lire ... ici
Après sept ans, ce commentaire très voté n'a toujours pas sa propre réponse à part entière, donc je le fais maintenant:
gzip -r .
Cela présente deux avantages par rapport à la réponse actuellement acceptée: cela fonctionne récursivement s'il y a des sous-répertoires, et il n'échouera pas à partir de Argument list too long
si le nombre de fichiers est très important.
Si vous voulez gziper chaque fichier récursivement, vous pouvez utiliser find piped to xargs:
$ find . -type f -print0 | xargs -0r gzip
Essayez une boucle
$ for file in *; do gzip "$file"; done
Ou, si vous avez pigz (utilitaire gzip qui parallélise la compression sur plusieurs processeurs et cœurs)
pigz *