Renommer fichiers en masse ligne de commande
Résolu/Fermé
Abdenago
-
11 févr. 2011 à 20:46
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 - 16 févr. 2011 à 17:01
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 - 16 févr. 2011 à 17:01
A voir également:
- Renommer fichiers en masse ligne de commande
- Renommer des fichiers en masse - Guide
- Invite de commande - Guide
- Site de vente en ligne particulier - Guide
- Partage de photos en ligne - Guide
- Wetransfer gratuit fichiers lourd - Guide
8 réponses
Utilisateur anonyme
Modifié par initials 76 le 12/02/2011 à 19:50
Modifié par initials 76 le 12/02/2011 à 19:50
J'ai trouvé :D
If you want to go quickly, go alone. If you want to go far, go together.
initials@alexis:~/test$ touch {toto,titi,tata,tutu}.txt initials@alexis:~/test$ ls tata.txt titi.txt toto.txt tutu.txt initials@alexis:~/test$ j=0; for f in *.txt; do let j+=1; mv -v "$f" "$j.txt"; done « tata.txt » -> « 1.txt » « titi.txt » -> « 2.txt » « toto.txt » -> « 3.txt » « tutu.txt » -> « 4.txt » initials@alexis:~/test$
If you want to go quickly, go alone. If you want to go far, go together.
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 407
16 févr. 2011 à 17:01
16 févr. 2011 à 17:01
$ tree . |-- fich1.zip |-- fich2.zip '-- rep |-- fich3.zip |-- fich4.zip |-- rep1 | |-- sous-rep1 | | |-- fich5.zip | | '-- fich6.zip | '-- sous-rep2 | |-- fich5.zip | '-- fich6.zip '-- rep2 |-- sous-rep1 | |-- fich7.zip | '-- fich8.zip '-- sous-rep2 |-- fich7.zip '-- fich8.zip 7 directories, 12 files $ i=0; for file in $( find . -type f -name "*.zip"); do name=$(basename $file);rep=$(dirname $file); mv -v $rep/$name $rep/$i.zip;((i++)); done './fich2.zip' -> './0.zip' './fich1.zip' -> './1.zip' './rep/fich4.zip' -> './rep/2.zip' './rep/fich3.zip' -> './rep/3.zip' './rep/rep2/sous-rep2/fich8.zip' -> './rep/rep2/sous-rep2/4.zip' './rep/rep2/sous-rep2/fich7.zip' -> './rep/rep2/sous-rep2/5.zip' './rep/rep2/sous-rep1/fich8.zip' -> './rep/rep2/sous-rep1/6.zip' './rep/rep2/sous-rep1/fich7.zip' -> './rep/rep2/sous-rep1/7.zip' './rep/rep1/sous-rep2/fich6.zip' -> './rep/rep1/sous-rep2/8.zip' './rep/rep1/sous-rep2/fich5.zip' -> './rep/rep1/sous-rep2/9.zip' './rep/rep1/sous-rep1/fich6.zip' -> './rep/rep1/sous-rep1/10.zip' './rep/rep1/sous-rep1/fich5.zip' -> './rep/rep1/sous-rep1/11.zip' $ tree . |-- 0.zip |-- 1.zip '-- rep |-- 2.zip |-- 3.zip |-- rep1 | |-- sous-rep1 | | |-- 10.zip | | '-- 11.zip | '-- sous-rep2 | |-- 8.zip | '-- 9.zip '-- rep2 |-- sous-rep1 | |-- 6.zip | '-- 7.zip '-- sous-rep2 |-- 4.zip '-- 5.zip 7 directories, 12 files $
;-))
Pour plus de clarté dans le code...
i=0 ; for file in $( find . -type f -name "*.zip") ; do name=$(basename $file) ; rep=$(dirname $file) ; mv -v $rep/$name $rep/$i.zip ; ((i++)) ; done
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 407
11 févr. 2011 à 22:43
11 févr. 2011 à 22:43
Salut,
T'as essayé quoi pour l'instant ?
T'as essayé quoi pour l'instant ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Zaki_N.
Messages postés
107
Date d'inscription
dimanche 2 mai 2010
Statut
Membre
Dernière intervention
8 décembre 2012
49
12 févr. 2011 à 14:24
12 févr. 2011 à 14:24
Bonjour/bonsoir,
Lis ce qui suit stp (in English) :
https://linux.byexamples.com/archives/135/rename-multiple-files/
https://www.thegeekstuff.com/2009/06/how-to-rename-files-in-group/
Lis ce qui suit stp (in English) :
https://linux.byexamples.com/archives/135/rename-multiple-files/
https://www.thegeekstuff.com/2009/06/how-to-rename-files-in-group/
Bonjour à TOUS,
Je n'ai pas eu accès à un internet pendant un certain temps, n'en déplaise à certain.
Merci à initials 76, j'ai pu bidouiller un peu avec ta méthode et j'ai réussi tant bien que mal! :-) Certains commentaires désobligeants sont à éviter je pense (zipe31) pour entretenir de bonnes relations..
Merci beaucoup! Résolu! :-)
Je n'ai pas eu accès à un internet pendant un certain temps, n'en déplaise à certain.
Merci à initials 76, j'ai pu bidouiller un peu avec ta méthode et j'ai réussi tant bien que mal! :-) Certains commentaires désobligeants sont à éviter je pense (zipe31) pour entretenir de bonnes relations..
Merci beaucoup! Résolu! :-)
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 407
14 févr. 2011 à 20:13
14 févr. 2011 à 20:13
Et tu m'en vois tout confus et tout heureux de tomber sur l'exception qui confirme la règle ;-))
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 567
Modifié par lami20j le 14/02/2011 à 22:08
Modifié par lami20j le 14/02/2011 à 22:08
Salut,
j'ai appris en même temps ;-)
Tu peux toujours faire des économies de frappes;-)
j'ai appris en même temps ;-)
Tu peux toujours faire des économies de frappes;-)
touch {toto,titi,tata,tutu}.txt touch t{oto,iti,ata,utu}.txt
HEELP!
Est il possible de faire un truc comme ça?
:)
merci
Est il possible de faire un truc comme ça?
find . -name '*.zip' | xargs j=0; for f in *.zip; do let j+=1; mv -v "$f" "$j.zip"; done
:)
merci
Je met un point virgule, ça tourne mais ça ne renomme que les fichiers présents dans le répertoire courant :/ et pas la totalité des fichiers trouvé par find :(
Le find marche hein!
mais quand je fais:
==> Il ne renomme que les fichiers du répertoire courant! je pense qu'il y a un problème avec 'exec'
find ./Bureau/essai -name '*.zip'==> je trouve tous les fichiers zip qui se trouvent dans le répertoire courant + ceux des sous répertoires.
mais quand je fais:
find ./Bureau/essai -name '*.zip' | exec; j=0; for f in *.zip; do let j+=1; mv -v "$f" "$j.zip"; done
==> Il ne renomme que les fichiers du répertoire courant! je pense qu'il y a un problème avec 'exec'
14 févr. 2011 à 18:42
14 févr. 2011 à 18:45
Apparemment non ;-(
Ça devait être du genre pressé qui veut du tout cuit ;-\