web-dev-qa-db-fra.com

Comment compresser les fichiers en place?

J'ai une machine avec une utilisation de 90% du disque dur. Je veux compresser ses 500 fichiers journaux dans un nouveau fichier plus petit. Cependant, le disque dur est trop petit pour garder les fichiers d'origine et les compressés.

Donc, ce dont j'ai besoin, c'est de compresser tous les fichiers journaux dans un seul nouveau fichier un par un, supprimant chaque original une fois compressé.

Comment puis-je faire cela à Linux?

20
Zen

gzip ou bzip2 Compresser le fichier et retirera le non-compressé automatiquement (il s'agit de leur comportement par défaut).

Cependant, gardez à l'esprit que, si le processus de compression, les deux fichiers existent.

Si vous souhaitez compresser les fichiers journaux (c.-à-d. Fichiers contenant du texte), vous préférez peut-être préférer bzip2, puisqu'il a un meilleur rapport pour les fichiers texte.

bzip2 -9 myfile       # will produce myfile.bz2

Comparaison et exemples:

$ ls -l myfile
-rw-rw-r-- 1 apaul apaul 585999 29 april 10:09 myfile

$ bzip2 -9 myfile

$ ls -l myfile*
-rw-rw-r-- 1 apaul apaul 115780 29 april 10:09 myfile.bz2

$ bunzip2 myfile.bz2

$ gzip -9 myfile

$ ls -l myfile*
-rw-rw-r-- 1 apaul apaul 146234 29 april 10:09 myfile.gz

[~ # ~] Mise à jour [~ # ~ ~] Comme @jjoao m'a dit dans un commentaire, de manière intéressante xz semble avoir un Meilleur ratio sur des fichiers simples avec ses options par défaut:

$ xz -9 myfile

$ ls -l myfile*
-rw-rw-r-- 1 apaul apaul 109384 29 april 10:09 myfile.xz

Pour plus d'informations, voici une référence intéressante pour différents outils: http://binfalse.de/2011/04/04/comparison-of-commression/

Pour l'exemple ci-dessus, j'utilise -9 Pour un meilleur ratio de compression, mais si le temps nécessaire pour compresser les données est plus important que le rapport, vous feriez mieux de ne pas l'utiliser (utilisez une option inférieure, c'est-à-dire -1, ou quelque chose entre).

20
apaul

En complément @APAUL, je souligne que la compression des fichiers individuellement

 bzip2 *.log.*

(Remplacez BZIP2 par GZIP, XZ ou quel que soit votre zip préféré de fichier zip) peut être important:

De cette façon, vous pouvez toujours voir (bzcat file.bz2), chercher (bzgrep file.bz2), Éditer (vi file.bz2) Le fichier compressé et retirez les plus âgés si nécessaire.

1
JJoao