Script de tri bash
Résolu/Fermé
A voir également:
- Script de tri bash
- Script vidéo youtube - Guide
- Tri excel - Guide
- Logiciel de tri de photos - Guide
- Ghost script - Télécharger - Polices de caractères
- Microsoft activation script - Accueil - Windows
13 réponses
dubcek
Messages postés
18757
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
19 décembre 2024
5 623
22 avril 2008 à 10:30
22 avril 2008 à 10:30
hello
for X in mp3 avi mpg wav mov ; do mv *.$X dossier_$X done
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 569
22 avril 2008 à 11:40
22 avril 2008 à 11:40
Salut,
la commande de dubcek change le nom de fichiers de fichier.avi en dossier_avi
il faut d'abord créer les répertoires
l
la commande de dubcek change le nom de fichiers de fichier.avi en dossier_avi
il faut d'abord créer les répertoires
lami20j@debian:~/trash$ for x in avi mp3 ogg; do mkdir dossier_$x;done lami20j@debian:~/trash$ ls -ld dossier_* drwxr-xr-x 2 lami20j lami20j 4096 2008-04-22 11:38 dossier_avi drwxr-xr-x 2 lami20j lami20j 4096 2008-04-22 11:38 dossier_mp3 drwxr-xr-x 2 lami20j lami20j 4096 2008-04-22 11:38 dossier_ogg lami20j@debian:~/trash$ ls -lR dossier_* dossier_avi: total 0 dossier_mp3: total 0 dossier_ogg: total 0et ensuite deplacer
l
ami20j@debian:~/trash$ for x in avi mp3 ogg; do mv -v *.$x dossier_$x/;done `a.avi' -> `dossier_avi/a.avi' `a.mp3' -> `dossier_mp3/a.mp3' `a.ogg' -> `dossier_ogg/a.ogg' lami20j@debian:~/trash$ ls -lR dossier_* dossier_avi: total 0 -rw-r--r-- 1 lami20j lami20j 0 2008-04-22 11:38 a.avi dossier_mp3: total 0 -rw-r--r-- 1 lami20j lami20j 0 2008-04-22 11:38 a.mp3 dossier_ogg: total 0 -rw-r--r-- 1 lami20j lami20j 0 2008-04-22 11:38 a.ogg lami20j@debian:~/trash$
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 896
22 avril 2008 à 11:42
22 avril 2008 à 11:42
Oups ;-))
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 896
22 avril 2008 à 13:53
22 avril 2008 à 13:53
[jp@MDK-2008 trash]$ tree . |-- fich1.avi |-- fich1.mov |-- fich1.mp3 |-- fich1.mpg |-- fich1.wav |-- fich2.avi |-- fich2.mov |-- fich2.mp3 |-- fich2.mpg |-- fich2.wav |-- fich3.avi |-- fich3.mov |-- fich3.mp3 |-- fich3.mpg |-- fich3.wav |-- fich4.avi |-- fich4.mov |-- fich4.mp3 |-- fich4.mpg |-- fich4.wav |-- fich5.avi |-- fich5.mov |-- fich5.mp3 |-- fich5.mpg `-- fich5.wav 0 directories, 25 files [jp@MDK-2008 trash]$ for X in mp3 avi mpg wav mov do if [ ! -d "Dossier_$X" ]; then mkdir "Dossier_$X" fi mv *.$X Dossier_$X done [jp@MDK-2008 trash]$ tree . |-- Dossier_avi | |-- fich1.avi | |-- fich2.avi | |-- fich3.avi | |-- fich4.avi | `-- fich5.avi |-- Dossier_mov | |-- fich1.mov | |-- fich2.mov | |-- fich3.mov | |-- fich4.mov | `-- fich5.mov |-- Dossier_mp3 | |-- fich1.mp3 | |-- fich2.mp3 | |-- fich3.mp3 | |-- fich4.mp3 | `-- fich5.mp3 |-- Dossier_mpg | |-- fich1.mpg | |-- fich2.mpg | |-- fich3.mpg | |-- fich4.mpg | `-- fich5.mpg `-- Dossier_wav |-- fich1.wav |-- fich2.wav |-- fich3.wav |-- fich4.wav `-- fich5.wav 5 directories, 25 files [jp@MDK-2008 trash]$;-))
Ssylvainsab
Messages postés
2884
Date d'inscription
samedi 29 juillet 2006
Statut
Modérateur
Dernière intervention
15 août 2020
825
22 avril 2008 à 03:02
22 avril 2008 à 03:02
Salut !
Utilises la commande mv et le joker * :
mv dossier/*.mp3 autredossier/
--
Sylvain
Utilises la commande mv et le joker * :
mv dossier/*.mp3 autredossier/
--
Sylvain
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Merci, mais la j'envoie tous mes fichiers dans un seul dossier, non ?
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 896
22 avril 2008 à 11:35
22 avril 2008 à 11:35
Salut,
Non, chaque fichier est envoyé dans le dossier de même extension ;-))
Non, chaque fichier est envoyé dans le dossier de même extension ;-))
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 896
>
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
22 avril 2008 à 11:41
22 avril 2008 à 11:41
Par contre il faut que chaque dossier existe avant, ou alors vérifier son existence dans le script et le créé le cas échéant ;-))
La création des dossiers marche, par contre le déplacement non :
Sinon, pour la création des dossiers, il n'y a pas moyen de ne pas avoir a signaler l'extension, mais qu'il la trouve de lui-meme ?
mv: option invalide -- Pour en savoir davantage, faites: « mv --help ». mv: option invalide -- Pour en savoir davantage, faites: « mv --help ».
Sinon, pour la création des dossiers, il n'y a pas moyen de ne pas avoir a signaler l'extension, mais qu'il la trouve de lui-meme ?
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 569
22 avril 2008 à 13:54
22 avril 2008 à 13:54
Affiche ce que tu tapes pour voir où est l'erreur
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 569
22 avril 2008 à 13:59
22 avril 2008 à 13:59
normalement il n'y a pas besoin de test pour mkdir ;-)
lami20j@debian:~/trash$ ls -lR dossier_* dossier_avi: total 0 -rw-r--r-- 1 lami20j lami20j 0 2008-04-22 11:38 a.avi dossier_mp3: total 0 -rw-r--r-- 1 lami20j lami20j 0 2008-04-22 11:38 a.mp3 dossier_ogg: total 0 -rw-r--r-- 1 lami20j lami20j 0 2008-04-22 11:38 a.ogg lami20j@debian:~/trash$ ls -l *.{avi,ogg,mp3,mpg} -rw-r--r-- 1 lami20j lami20j 0 2008-04-22 13:55 aaa.mpg -rw-r--r-- 1 lami20j lami20j 0 2008-04-22 13:57 aa.avi -rw-r--r-- 1 lami20j lami20j 0 2008-04-22 13:57 aa.mp3 -rw-r--r-- 1 lami20j lami20j 0 2008-04-22 13:57 aa.mpg -rw-r--r-- 1 lami20j lami20j 0 2008-04-22 13:57 aa.ogg lami20j@debian:~/trash$ for x in avi mp3 m ogg; do mkdir dossier_$x;mv -v *.$x dossier_$x/;done 2>/dev/null `aa.avi' -> `dossier_avi/aa.avi' `aa.mp3' -> `dossier_mp3/aa.mp3' `aa.ogg' -> `dossier_ogg/aa.ogg' lami20j@debian:~/trash$ ls -lR dossier_* dossier_avi: total 0 -rw-r--r-- 1 lami20j lami20j 0 2008-04-22 13:57 aa.avi -rw-r--r-- 1 lami20j lami20j 0 2008-04-22 11:38 a.avi dossier_m: total 0 dossier_mp3: total 0 -rw-r--r-- 1 lami20j lami20j 0 2008-04-22 13:57 aa.mp3 -rw-r--r-- 1 lami20j lami20j 0 2008-04-22 11:38 a.mp3 dossier_ogg: total 0 -rw-r--r-- 1 lami20j lami20j 0 2008-04-22 13:57 aa.ogg -rw-r--r-- 1 lami20j lami20j 0 2008-04-22 11:38 a.ogg lami20j@debian:~/trash$
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 896
22 avril 2008 à 14:02
22 avril 2008 à 14:02
Je savais pas, merchi ;-))
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 569
>
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
22 avril 2008 à 14:12
22 avril 2008 à 14:12
En fait si le répertoire existe il ne sera pas détruit mais un message d'erreur sera afficher
Il nous reste juste à rédirectionner la sortie d'erreur pour ne pas poluer la console ;-))
Il nous reste juste à rédirectionner la sortie d'erreur pour ne pas poluer la console ;-))
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 896
>
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
22 avril 2008 à 14:21
22 avril 2008 à 14:21
Bon c'est sûr que pour un fainéant comme toi c'est plus court d'écrire :
2>/dev/null
que :
if [ ! -d "blabla" ]; then mkdir blabla; fi
;-DDD
2>/dev/null
que :
if [ ! -d "blabla" ]; then mkdir blabla; fi
;-DDD
Voila le script que j'ai executé :
Résultat : mes fichiers n'ont pas bougés, cependant les dossiers "Dossiers_.jpg" et autres ont bien étés crées, par contre je sais pas si le point dans le nom du dossier est normal.
Merci de votre aide !
#!/bin/sh for X in jpg JPG avi mpg mpeg do if [ ! -d "Dossier_$X" ]; then mkdir "Dossier_$X" fi mv *.$X Dossier_$X done
Résultat : mes fichiers n'ont pas bougés, cependant les dossiers "Dossiers_.jpg" et autres ont bien étés crées, par contre je sais pas si le point dans le nom du dossier est normal.
Merci de votre aide !
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 896
23 avril 2008 à 07:02
23 avril 2008 à 07:02
Affiche le contenu du répertoire avec tes fichiers, s'il te plaît.
C'est bon, j'ai réussi, ça marche impec, j'avais juste oublié le $ dans
J'ai juste une petite question : quelqu'un pourrait-il m'expliquer ce que signifie
mv *.$X Dossier_$X. Merci encore !
J'ai juste une petite question : quelqu'un pourrait-il m'expliquer ce que signifie
[ ! -d "Dossier_$X" ]Merci encore !
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 569
23 avril 2008 à 13:06
23 avril 2008 à 13:06
Salut,
c'est un test pour voir si le dossier existe
Voici la traduction
c'est un test pour voir si le dossier existe
if [ ! -d "Dossier_$X" ]; then mkdir "Dossier_$X"
Voici la traduction
Si [ il n'y pas de répertoire "Dossier_$X" ]; ALORS créer le répertoire "Dossier_$X"