Script #bash tri de fichier par extension
Fermé
kevin76110
Messages postés
4273
Date d'inscription
vendredi 14 août 2009
Statut
Membre
Dernière intervention
27 mars 2013
-
Modifié par kevin76110 le 25/03/2011 à 14:40
kevin76110 Messages postés 4273 Date d'inscription vendredi 14 août 2009 Statut Membre Dernière intervention 27 mars 2013 - 25 mars 2011 à 18:16
kevin76110 Messages postés 4273 Date d'inscription vendredi 14 août 2009 Statut Membre Dernière intervention 27 mars 2013 - 25 mars 2011 à 18:16
A voir également:
- Script #bash tri de fichier par extension
- Changer extension fichier - Guide
- Fichier rar - Guide
- Script vidéo youtube - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
2 réponses
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 420
25 mars 2011 à 15:08
25 mars 2011 à 15:08
Salut,
A quelque chose prêt, oui, mais... parce qu'il y a un mais ;-\
Les fichiers ne sont pas trié en fonction de leur extension (pdf, jpg, txt, etc.) mais en fonction de leur type (image, audio, vidéo, texte, etc.), ce qui n'est pas trop gênant en fin de compte.
Par contre, la dernière ligne "find $ORIG/ -type d -exec rmdir 2>/dev/null {} \; " supprime tous les répertoires d'origine et les fichiers qu'ils contiennent une fois le tri terminé ;-\
Je ne pense pas que ce soit ce que tu veux, du moins tant que tu n'es pas sûr d'avoir vraiment fait le tri...
A quelque chose prêt, oui, mais... parce qu'il y a un mais ;-\
Les fichiers ne sont pas trié en fonction de leur extension (pdf, jpg, txt, etc.) mais en fonction de leur type (image, audio, vidéo, texte, etc.), ce qui n'est pas trop gênant en fin de compte.
Par contre, la dernière ligne "find $ORIG/ -type d -exec rmdir 2>/dev/null {} \; " supprime tous les répertoires d'origine et les fichiers qu'ils contiennent une fois le tri terminé ;-\
Je ne pense pas que ce soit ce que tu veux, du moins tant que tu n'es pas sûr d'avoir vraiment fait le tri...
kevin76110
Messages postés
4273
Date d'inscription
vendredi 14 août 2009
Statut
Membre
Dernière intervention
27 mars 2013
874
25 mars 2011 à 15:19
25 mars 2011 à 15:19
Merci de ta réponse =)A la limite je m'en fout que les fichiers soient détruits, s'ils sont copié ou déplacés quelque part.
Mais je vais quand même la retirer par sécurité.
Le trie ainsi n'est pas trop mal.
Si je mets ceci :
ORIG="/répertoire à trier"
DEST="/répertoire de destination"
ORIG=${ORIG%/}
DEST=${DEST%/}
find $ORIG/ -regextype "posix-extended" -depth -type f -regex ".*" | while read fichier ; do
a=$(file -ib "${fichier}")
[ -d "$DEST/${a%%/*}" ] || mkdir -p "$DEST/${a%%/*}"
mvfichier=${fichier##*/}
[ "${fichier%/*}" != "$DEST/${a%%/*}" ] && {
[ -f "$DEST/${a%%/*}/${mvfichier}" ] && {
b=1
while [ -f "$DEST/${a%%/*}/copie${b}___${mvfichier#*___}" ] ; do ((b++)) ; done
mv "${fichier}" "$DEST/${a%%/*}/copie${b}___${mvfichier#*___}"
} || mv "${fichier}" "$DEST/${a%%/*}/${mvfichier}"
}
done
exit
Ca triera bien ?
(désolé je débute un peu en bash ^^)
Mais je vais quand même la retirer par sécurité.
Le trie ainsi n'est pas trop mal.
Si je mets ceci :
ORIG="/répertoire à trier"
DEST="/répertoire de destination"
ORIG=${ORIG%/}
DEST=${DEST%/}
find $ORIG/ -regextype "posix-extended" -depth -type f -regex ".*" | while read fichier ; do
a=$(file -ib "${fichier}")
[ -d "$DEST/${a%%/*}" ] || mkdir -p "$DEST/${a%%/*}"
mvfichier=${fichier##*/}
[ "${fichier%/*}" != "$DEST/${a%%/*}" ] && {
[ -f "$DEST/${a%%/*}/${mvfichier}" ] && {
b=1
while [ -f "$DEST/${a%%/*}/copie${b}___${mvfichier#*___}" ] ; do ((b++)) ; done
mv "${fichier}" "$DEST/${a%%/*}/copie${b}___${mvfichier#*___}"
} || mv "${fichier}" "$DEST/${a%%/*}/${mvfichier}"
}
done
exit
Ca triera bien ?
(désolé je débute un peu en bash ^^)
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 420
25 mars 2011 à 15:55
25 mars 2011 à 15:55
Oui logiquement ça devrait le faire...
De toute façon, vu que tu as retiré la partie de suppression, tu ne risques rien à l'essayer ;-))
De toute façon, vu que tu as retiré la partie de suppression, tu ne risques rien à l'essayer ;-))
kevin76110
Messages postés
4273
Date d'inscription
vendredi 14 août 2009
Statut
Membre
Dernière intervention
27 mars 2013
874
25 mars 2011 à 18:16
25 mars 2011 à 18:16
Au pire je vais tester avec seulement 2 ou 3 dossiers et quelques fichiers.
Je teste ce soir ;)
Je teste ce soir ;)