Comment pouvons-nous GZip chaque fichier séparément?GZip chaque fichier séparément
Je ne veux pas avoir tous les fichiers dans un gros goudron.
Comment pouvons-nous GZip chaque fichier séparément?GZip chaque fichier séparément
Je ne veux pas avoir tous les fichiers dans un gros goudron.
Vous pouvez utiliser gzip *
Note:
-k
(--keep
) pour conserver les fichiers d'origine.Essayez une boucle
$ for file in *; do gzip "$file"; done
Si vous voulez gzip chaque fichier récursive, vous pouvez utiliser trouver canalisée à xargs:
$ find . -type f -print0 | xargs -0r gzip
facile et réponse très rapide qui utiliseront tous vos cœurs de processeurs en parallèle:
parallel gzip ::: *
Eh, cette réponse a besoin de plus de votes upvotes! – zx8754
@ zx8754 ** GNU Parallel ** est un outil fantastique qui devrait être utilisé beaucoup plus dans ce monde où les processeurs n'obtiennent plus que des cœurs plutôt que plus de vitesse. Il y a plein d'exemples que nous ferions tous bien de prendre 10 minutes à lire ... https://www.gnu.org/software/parallel/parallel_tutorial.html –
Connais-tu les parallèles, mais continue à oublier de les utiliser! Ran la réponse acceptée puis défiler vers le bas pour voir votre réponse ... sauvé beaucoup d'heures! Peut-être une bonne idée de faire votre commentaire une modification à votre réponse? – zx8754
Après sept ans, ce commentaire très upvoted n'a toujours pas sa propre réponse à part entière, donc je fais la promotion maintenant:
gzip -r .
Cela a deux avantages par rapport à la réponse actuellement acceptée: il fonctionne récursivement s'il y a des sous-répertoires, et il n'échouera pas de Argument list too long
si le nombre de fichiers est très important.
Pas besoin de trouver + xargs. Gzip peut gérer la récursivité elle-même: 'gzip -9r .' – Idelic
Comme toujours,' find. -type f -print0 | xargs -0r gzip' est meilleur. – musiphil
Pour l'équivalent de 'gzip *', vous pouvez aussi avoir besoin de '-maxdepth 1' dans' find'. – musiphil