J'ai une machine avec 90% d'utilisation du disque dur. Je veux compresser ses 500+ fichiers journaux dans un nouveau fichier plus petit. Cependant, le disque dur est trop petit pour conserver à la fois les fichiers d'origine et les fichiers compressés.
Donc, ce dont j'ai besoin, c'est de compresser tous les fichiers journaux dans un seul nouveau fichier un par un, en supprimant chaque original une fois compressé.
Comment puis-je faire cela sous Linux?
Réponses:
gzip
oubzip2
compressera le fichier et supprimera automatiquement le fichier non compressé (c'est leur comportement par défaut).Cependant, gardez à l'esprit que pendant le processus de compression, les deux fichiers existent.
Si vous souhaitez compresser les fichiers journaux (par exemple: les fichiers contenant du texte), vous pouvez préférer
bzip2
, car il a un meilleur rapport pour les fichiers texte.Comparaison et exemples:
MISE À JOUR comme @Jjoao me l'a dit dans un commentaire, fait intéressant,
xz
semble avoir un meilleur ratio sur les fichiers simples avec ses options par défaut:Pour plus d'informations, voici une référence intéressante pour différents outils: http://binfalse.de/2011/04/04/comparison-of-compression/
Pour l'exemple ci-dessus, j'utilise
-9
pour un meilleur taux de compression, mais si le temps nécessaire pour compresser les données est plus important que le taux, vous feriez mieux de ne pas l'utiliser (utilisez une option inférieure, c'est-1
-à- dire ou quelque chose entre les deux).la source
xz myfile
?xz
, mais je vais y réfléchir maintenant. Voir la mise à jour de mon post.xz -9
. Il augmente considérablement la mémoire requise pour la compression / décompression, sans améliorer considérablement le taux de compression. La page de manuel dit même (en soulignant la leur) "Plus précisément, ce n'est pas une bonne idée d'utiliser aveuglément -9 pour tout ce qui est souvent le cas avec gzip (1) et bzip2 (1)". La valeur par défautxz -6
est suffisamment bonne, et mêmexz -0
/xz -1
généralement mieux quegzip -9
.-9
, mais je l'ai utilisé ici car je voulais faire une sorte de référence pour le taux de compression "à la même échelle". Mais encore une fois, vous avez tout à fait raison: c'est une mauvaise idée d'utiliser aveuglément-9
.J'ai trouvé une solution de goudron par moi-même.
Il supprime un fichier unique après l'avoir compressé dans le fichier cible.
Cependant, la vitesse de compression n'est pas assez rapide. La commande ressemble à:
la source
En complément de @apaul, je souligne que la compression individuelle des fichiers
(remplacez bzip2 par gzip, xz, ou quel que soit votre fichier zip préféré) peut être important:
De cette façon, vous pouvez toujours voir (
bzcat file.bz2
), rechercher (bzgrep file.bz2
), éditer (vi file.bz2
) le fichier compressé et supprimer les plus anciens si nécessaire.la source
J'essayais de le faire sur la version BSD de tar. Dans ce cas, l'option --remove-files n'est pas disponible. Ce que j'ai fini par faire (et travailler) était:
la source