[bash] script non fonctionnelle, mais pas d'e
Résolu
periplasme
Messages postés
391
Date d'inscription
Statut
Membre
Dernière intervention
-
Char Snipeur Messages postés 9813 Date d'inscription Statut Contributeur Dernière intervention -
Char Snipeur Messages postés 9813 Date d'inscription Statut Contributeur Dernière intervention -
A voir également:
- [bash] script non fonctionnelle, mais pas d'e
- Script vidéo youtube - Guide
- É majuscule - Guide
- Mas script - Accueil - Windows
- Ghost script - Télécharger - Polices de caractères
- Bingo bash - Télécharger - Divers Jeux
3 réponses
hello
!! attention, il me semble que le find va aussi descendre dans les répertoires ebooks music et movies et essayer de copier les fichiers sur eux-mêmes.
on peut utiliser tab=(...) pour initialiser un tableau
utiliser ${} avec les variables : ${tab[$i]}
utiliser " pour le find -name à cause des *
on peut connaitre la taille du tableau avec ${#tab[@]}
!! attention, il me semble que le find va aussi descendre dans les répertoires ebooks music et movies et essayer de copier les fichiers sur eux-mêmes.
on peut utiliser tab=(...) pour initialiser un tableau
utiliser ${} avec les variables : ${tab[$i]}
utiliser " pour le find -name à cause des *
on peut connaitre la taille du tableau avec ${#tab[@]}
#!/bin/bash # les extensions tab=("*.epub" "*.pdf" "*.mp3" "*.ogg" "*.wav" "*.avi" "*.mkv" "*.mp4") # pour tout fichiers dans le répertoire courant, on verifie l'extension, et on range en conséquence. for ((i=0; i<=${#tab[@]}; i++)) do #epub et pdf if test $i -le 1; then find ./ -name "${tab[$i]}" -exec cp {} ebooks/ \; else #mp3, ogg, et wav if test $i -ge 2 && test $i -le 4; then find ./ -name "${tab[$i]}" -exec cp {} music/ \; else #avi, mkv, et mp4 if test $i -ge 5 && test $i -le 7; then find ./ -name "${tab[$i]}" -exec cp {} movies/ \; fi fi fi done
Salut.
Je ne sais pas trop ce qui merde dans ton script. Mais pourquoi faire compliquer quand on peut faire simple ?
d'ailleurs, si tu veux ranger, tu devrais plutôt faire un mv qu'un cp.
De toute les manières ta boucle est inutile, si tu veux vraiment le faire avec find, il y a moyen de lui passé plusieurs extension.
Je ne sais pas trop ce qui merde dans ton script. Mais pourquoi faire compliquer quand on peut faire simple ?
books="*.pdf *.epub" music="*.mp3 *.wav" video="*.avi *.mpeg" if ls $books then : cp $books ebooks fi if ls $music then : cp $music music/ fi if ls $video then : cp $video movies/ fi
d'ailleurs, si tu veux ranger, tu devrais plutôt faire un mv qu'un cp.
De toute les manières ta boucle est inutile, si tu veux vraiment le faire avec find, il y a moyen de lui passé plusieurs extension.