Compresser tous les fichiers d'une certaine extension dans un dossier

Compresser tous les fichiers d'une certaine extension dans un dossier - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 11-01-2013 à 14:22:21    

J'ai un répertoire "Travail" dans lequel j'ai un arborescence avec de nombreux sous répertoires.
 
Dans certains répertoires, j'ai des fichiers *.pcap qui sont volumineux et très compressibles. J'aimerais faire un script bash pour compresser individuellement chaque fichier pcap en un pcap.tgz par exemple.
 
Ex:
/travail/Projet toto/capture iphone 73.pcap
deviendrait:
/travail/Projet toto/capture iphone 73.pcap.tgz
 
Des pistes pour la boucle et surtout pour bien traiter l'arborescence ?
 
Edit:
J'ai trouvé un lien intéressant: http://r3dux.org/2009/04/how-to-co [...] -archives/
 
Et cette ligne de commande me semble pas mal. Par contre elle ne supprime pas le fichier compressé une fois qu'il est compressé. Je pourrais la relancer avec un "rm $1" dans la partie commande mais ça ferait 2 passes.
find . -type f -name '*.pcap' ! -name '*.7z' -execdir sh -c '7z a -mx9 -mmt "$1".7z "$1"' : {} \;


Message édité par snk4ever le 11-01-2013 à 14:31:02
Reply

Marsh Posté le 11-01-2013 à 14:22:21   

Reply

Marsh Posté le 11-01-2013 à 14:51:49    

tu peux pas le faire dans la même passe en séquençant les commandes de -exec ?

Reply

Marsh Posté le 11-01-2013 à 21:45:29    

Autrement, comme avec script du style :

#!/bin/bash  
while read line  
do  
f=$line
7z a -mx9 -mmt "$f".7z"
rm -f $f
done < <(find . -type f -name '*.pcap' ! -name '*.7z' -print)


Tu pourrais même ajouter un compteur par un echo quelconque.


---------------
Grippe ? Coronavirus ? Portez votre masque correctement ! :D
Reply

Marsh Posté le 17-01-2013 à 14:34:10    

Code :
  1. find . -type f -name "*.pcap" -exec gzip {} \;
 

gzip remplace automatiquement l'ancien fichier par le nouveau compressé, renommé automatiquement en .gz, donc pas de rm ou autre à faire.
remarque : évite le .tgz pour un fichier unique compressé, le .gz suffit. Le .tgz fait en général référence à un tar qui a été compressé.


Message édité par Nukolau le 17-01-2013 à 14:35:29
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed