#1 Le 09/12/2008, à 11:26
- Draky
Opérations sur plusieurs fichiers d'un répertoire
Salut
Je cherche un petit bout de ligne de commande mais Saint Google ne m'a rien trouvé...
Dans un répertoire, j'ai plusieurs fichiers que je cherche à compresser individuellement (1 par archive) avec une ligne de commande de type "7za a xxxxx nom du fichier".
Et ainsi de suite pour chaque fichier.
Une fois chaque fichier fini, hop on s'arrête, sinon on va finir avec des fichiers qui se compressent à l'infini.
Eventuellement envisageable, une commande qui déplace ou supprime le fichier qui vient d'être compressé.
Récapitulatif :
1) compression d'un fichier vers un autre répertoire
2) déplacement du fichier source non compressé vers un autre répertoire OU suppression
3) on recommence avec le suivant
4) on rend gentiment la main
En fait, je suppose qu'une ligne de commande devrait suffire ou du "bash" mais comme je ne m'y connais pas pour ça...
Merci
Hors ligne
#2 Le 09/12/2008, à 11:52
- Compte anonymisé
Re : Opérations sur plusieurs fichiers d'un répertoire
Salut
Tu peux essayer avec find en tapant une ligne de ce type :
find /ton_rep_origine -name *.txt -exec 7za a /ton_rep_destination/{}.zip {} \; -delete
Va te créer une archive pour chaque fichier *.txt du répertoire d'origine (les sous-dossiers sont traiter dans le répertoire de destination en lui donnant l'extention .zip et en recréant l'arborescence.
Tu dois pouvoir adapter à ta convenance.
@+
Attention au -delete. Il supprime les fichiers d'origine
Dernière modification par Compte anonymisé (Le 09/12/2008, à 12:02)
#3 Le 09/12/2008, à 13:38
- Draky
Re : Opérations sur plusieurs fichiers d'un répertoire
Ca marche pas.
find -name *.txt -exec 7za a /media/DIVERS300/TXT/NewFolder/{}.7z {} \; -delete
find: paths must precede expression: 1.txt
Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]
Le répertoire source contient 1.txt et 2.txt pour tester.
Par contre, avec un seul des deux, il le compresse et le supprime bien après.
Dernière modification par Draky (Le 09/12/2008, à 13:38)
Hors ligne
#4 Le 09/12/2008, à 14:37
- Compte anonymisé
Re : Opérations sur plusieurs fichiers d'un répertoire
Ca marche pas.
find -name *.txt -exec 7za a /media/DIVERS300/TXT/NewFolder/{}.7z {} \; -delete
find: paths must precede expression: 1.txt
Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]Le répertoire source contient 1.txt et 2.txt pour tester.
Par contre, avec un seul des deux, il le compresse et le supprime bien après.
Le premier paramètre de find est le répertoire de départ de la recherche :
soit de type /sss/dddd/rrr en partant de la racine
soit de type xxx/zzz/yyy pour un répertoire en partant du repertoire courant
soit de type . pour le repertoire courant (celui où tu te trouves)
find . -name *.txt -exec 7za a /media/DIVERS300/TXT/NewFolder/{}.7z {} \; -delete
devrait fonctionner.
@+
Dernière modification par Compte anonymisé (Le 09/12/2008, à 14:39)
#5 Le 09/12/2008, à 15:09
- Draky
Re : Opérations sur plusieurs fichiers d'un répertoire
Non, toujours pas.
find . -name *.txt -exec 7za a /media/DIVERS300/TXT/NewFolder/{}.7z {} \; -delete
find: paths must precede expression: 2.txt
Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]
Il trouve le 2.txt ne veut pas y toucher.
find /media/DD300/txt/ -name *.txt -exec 7za a /media/DIVERS300/TXT/NewFolder/{}.7z {} \; -delete
find: paths must precede expression: 2.txt
Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]
Idem, j'ai juste rajouté le path au cas où, sachant que de toute façon je lance cette commande DANS le répertoire où se trouve les 2 fichiers .txt (1.txt et 2.txt).
Hors ligne
#6 Le 09/12/2008, à 15:19
- Compte anonymisé
Re : Opérations sur plusieurs fichiers d'un répertoire
C'est vrai j'ai testé.
Bon c'est tout con. Remplace par :
find . -name "*.txt" -exec 7za a /media/DIVERS300/TXT/NewFolder/{}.7z {} \; -delete
@+
#7 Le 09/12/2008, à 21:48
- Draky
Re : Opérations sur plusieurs fichiers d'un répertoire
Ca marche
Merci !
Hors ligne