Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2972 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

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

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

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

n°1328326
snk4ever
Posté le 11-01-2013 à 14:22:21  profilanswer
 

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
mood
Publicité
Posté le 11-01-2013 à 14:22:21  profilanswer
 

n°1328328
o'gure
Modérateur
Multi grognon de B_L
Posté le 11-01-2013 à 14:51:49  profilanswer
 

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

n°1328341
bardiel
Debian powa !
Posté le 11-01-2013 à 21:45:29  profilanswer
 

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
n°1328744
Nukolau
Posté le 17-01-2013 à 14:34:10  profilanswer
 

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

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

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

 

Sujets relatifs
[Android 4.1.1] Souci d'accès à un seul dossier sous ES File ExplorerDossier Desktop de KDE
tar > selection dossier & skip overwrite ?Corriger des noms de fichiers
[Samba] Empecher la modification d'un dossier en lecture écritureSupprimer certains fichiers de dossiers et sous dossiers
[Shell] Comparaison de dates entre deux fichiersassigner une variable à un dossier (Linux)
Plus de sujets relatifs à : Compresser tous les fichiers d'une certaine extension dans un dossier


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR