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.

Création d'une archive par fichier dans un répertoire

Création d’une archive par fichier dans un répertoire

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à ! :)