Linux : faire une archive séparée pour chaque fichier dans un répertoire
Linux c’est parfois magique…quand on sait comment faire !
J’avais un problème simple : un répertoire contenant des milliers de fichiers textes (logs), pour lesquels je souhaitais faire une archive pour chaque fichier (et non pas une archive contenant tous les fichiers). J’ai fait une petite boucle directement dans mon bash et le tour était joué !
1 | web01:~# for file in *.log*; do gzip --best $file; done |
La commande va parser le répertoire courant, prendre tous les fichiers finissant par .log, et en faire une archive gzip.
Note : la commande gzip n’est pas obligatoire, vous pouvez utiliser tar également.
1 | web01:~# for file in *.log*; do tar cfz $file; done |
Et voilà !
Commentaire by Xavier — 17 octobre 2012 @ 13:16
*.log –> *_log* erreur de frappe
bonne continuation
Commentaire by Romain — 17 octobre 2012 @ 14:58
Effectivement, pour le cas décrit dans la capture d’écran, il y a une faute de frappe, merci !