#26 Le 02/09/2007, à 03:46
- Yannick_LM
Re : [Script] dossier magique qui tri tout seul vos fichiers
@olazon : probleme d'epace comme d'hbitude ...
Essaye avec des guillemets autour des chemins "media/sda6/ma musique"
Trucs et astuces pour Vim
Ma web page avec des trucs dessus ...
Hors ligne
#27 Le 02/09/2007, à 09:16
- xelator
Re : [Script] dossier magique qui tri tout seul vos fichiers
je voulais aussi a chaque demarrage bouger le repertoire ~/.Amule vers le dossier tri.
Pouvez vous me corriger si vous avez le temps et si ce n'est pas bon (surement faux d'ailleurs, car je n'y connais rien)
#!/bin/bash cd ~/.Amule sleep 30 while [ 1 ]; do test=`ls` if [ -z $test ]; then echo "empty" else echo "full" mv *.* ~/Desktop/TRI done fi
#!/bin/bash
cd ~/.Amule #tu est sur que ce n'est pas .Amule/Incoming ?
sleep 30
while [ 1 ]; do
test=`ls`
if [ -z $test ]; then
echo "empty"
else
echo "full"
mv *.* ~/Desktop/TRI #il faut l'aligner avec le reste
sleep 60 #il faut mettre un sleep sinon la boucle va se faire tout le temps et aille pour le proc
done
la tu as mis une boucle donc le déplacement va se faire tout les 60 secondes (sleep 60)
si tu veux le faire qu'un fois a chaque démarrage c'est plutôt :
#!/bin/bash
mv ~/.Amule/Incoming/* ~/Desktop/TRI
# je suis pas sur pour le /incoming mais je pense que c'est sa non ?
tu le rend exécutable : chmod +x ton_script
et tu l'exécute avec ./ton_script
regarde si il y a des message d'erreur et si ça marche.
Hors ligne
#28 Le 02/09/2007, à 09:19
- xelator
Re : [Script] dossier magique qui tri tout seul vos fichiers
bonjour,
petit problème chez moi ça fonctionne si j'envoie dans mon home
mais si j'envoie sur une autre partition
mv: la cible `musique/' n'est pas un répertoire: Aucun fichier ou répertoire de ce type
mv: la cible `images/' n'est pas un répertoire: Aucun fichier ou répertoire de ce type#musique
for sik in mp3 ogg wav
do
mv *.$sik /media/sda6/ma musique/
done#photo
for tof in jpg jpeg png
do
mv *.$tof /media/sda6/mes images/
done
#musique
for sik in mp3 ogg wav
do
mv *.$sik "/media/sda6/ma musique/"
done
#photo
for tof in jpg jpeg png
do
mv *.$tof "/media/sda6/mes images/"
done
Hors ligne
#29 Le 02/09/2007, à 09:22
- jeromeg
Re : [Script] dossier magique qui tri tout seul vos fichiers
ferreol : vas dans Système -> Préférences -> Sessions, tu cliques sur nouveau :
Nom : bouger amule vers tri
Commande : mv ~/Amule/* ~/Desktop/TRI
olazon : c'est que tu as des espaces dans des noms de dossier, mets les comme ça dans le script :
/media/sda6/ma\ musique/
/media/sda6/mes\ images/
Ça devrait marcher !
Edit : mmm, je n'avais pas vu qu'il y avait une deuxième page de posts, grillé de quelques heures donc
Dernière modification par Qazer (Le 02/09/2007, à 09:23)
Hors ligne
#30 Le 02/09/2007, à 12:19
- olazon
Re : [Script] dossier magique qui tri tout seul vos fichiers
Ok merci xelator
ça fonctionne avec les guillemets.
Enfin un peu d'ordre !!
...si l'utopie est une chimère comme le dit le dictionnaire,
alors nous voulons des chimères partout sur la terre... (Les barbarins fourchus)
Hors ligne
#31 Le 02/09/2007, à 12:30
- Kyne
Re : [Script] dossier magique qui tri tout seul vos fichiers
Yop, j'ai un petit problème avec ce script ... un truc con mais con, mais je vois vraiment pas ou ca cloche ...
Donc je l'ai pour le moment comme ceci :
#!/bin/bash
#---------------Config du dossier de Tri -------------------------------------
dossiertri=~/Desktop/Tri/
# ----------------------------------------------------------------------------
#On se place dans le dossier de tri
cd $dossiertri
#temps en seconde de mise en service après le démarrage
sleep 30
while [ 1 ]; do
#Placer ce que l'on à téléchargé avec aMule dans le dossier de TRI
mv ~/.aMule/Incoming/* .
#Vérifier si le dossier de TRI est non vide
test=`ls`
if [ -z $test ]; then
echo `date`": le dossier est vide"
else
echo `date`": le dossier n'est pas vide"
#video
for vid in mov mpeg avi wmv
do
mv *.$vid ~/Mes\ Videos/
done
#document
for doc in pdf doc odt xls odf odx txt
do
mv *.$doc ~/Documents/
done
#musique
for zik in mp3 ogg
do
mv *.$zik ~/Ma\ musique/Divers/
done
#images
for pic in jpg jpeg png gif psd
do
mv *.$pic ~/Mes\ images/
done
#applications
for app in deb tar.gz tar.bz2 zip rar
do
mv *.$app ~/Desktop/
done
#autres (fichiers sans extension)
mv * ~/Documents/
fi
#temps en seconde entre chaque vérification de présence de fichier dans le répertoire
sleep 60
done
Ca, ca marche. Maintenant, je me ds... ca serait sympa de le rendre plus joli en rajoutant
1) des variables au début pour le configurer
2) un fichier log pour savoir ce qu'il se passe
Donc j'ai fais ca :
output=~/.trioutput
dirdocuments=~/Documents
dirmusiques=~/Ma\ musique/
....
....
#document
for doc in pdf doc odt xls odf odx txt
do
echo "copie de"`ls *.$doc`" dans $dirdocuments" >> $output
mv *.$doc $dirdocuments
done
#musique
for zik in mp3 ogg
do
echo "copie de"`ls *.$zik`" dans $dirmusiques" >> $output
mv *.$zik $dirmusiques
done
...
...
Dans le log je vois
"Copie de fichier.mp3 dans home/kyne/Ma musique"
.. donc la ok, ca marche et... et bah non... car il a été copié dans DOCUMENTS !
Je n'ai trouvé aucune explication possible à ca
Dernière modification par Kyne (Le 02/09/2007, à 12:31)
Hors ligne
#32 Le 02/09/2007, à 12:36
- ferreol
Re : [Script] dossier magique qui tri tout seul vos fichiers
merci les gars aMule est maintenant collé dans TRI puis redirigé ou il le faut.
C'est vraiment une bonne idée ce petit script.
Hors ligne
#33 Le 02/09/2007, à 13:14
- xelator
Re : [Script] dossier magique qui tri tout seul vos fichiers
Yop, j'ai un petit problème avec ce script ... un truc con mais con, mais je vois vraiment pas ou ca cloche ...
Donc je l'ai pour le moment comme ceci :
#!/bin/bash #---------------Config du dossier de Tri ------------------------------------- dossiertri=~/Desktop/Tri/ # ---------------------------------------------------------------------------- #On se place dans le dossier de tri cd $dossiertri #temps en seconde de mise en service après le démarrage sleep 30 while [ 1 ]; do #Placer ce que l'on à téléchargé avec aMule dans le dossier de TRI mv ~/.aMule/Incoming/* . #Vérifier si le dossier de TRI est non vide test=`ls` if [ -z $test ]; then echo `date`": le dossier est vide" else echo `date`": le dossier n'est pas vide" #video for vid in mov mpeg avi wmv do mv *.$vid ~/Mes\ Videos/ done #document for doc in pdf doc odt xls odf odx txt do mv *.$doc ~/Documents/ done #musique for zik in mp3 ogg do mv *.$zik ~/Ma\ musique/Divers/ done #images for pic in jpg jpeg png gif psd do mv *.$pic ~/Mes\ images/ done #applications for app in deb tar.gz tar.bz2 zip rar do mv *.$app ~/Desktop/ done #autres (fichiers sans extension) mv * ~/Documents/ fi #temps en seconde entre chaque vérification de présence de fichier dans le répertoire sleep 60 done
Ca, ca marche. Maintenant, je me ds... ca serait sympa de le rendre plus joli en rajoutant
1) des variables au début pour le configurer
2) un fichier log pour savoir ce qu'il se passeDonc j'ai fais ca :
output=~/.trioutput dirdocuments=~/Documents dirmusiques=~/Ma\ musique/ .... .... #document for doc in pdf doc odt xls odf odx txt do echo "copie de"`ls *.$doc`" dans $dirdocuments" >> $output mv *.$doc $dirdocuments done #musique for zik in mp3 ogg do echo "copie de"`ls *.$zik`" dans $dirmusiques" >> $output mv *.$zik $dirmusiques done ... ...
Dans le log je vois
"Copie de fichier.mp3 dans home/kyne/Ma musique".. donc la ok, ca marche et... et bah non... car il a été copié dans DOCUMENTS !
Je n'ai trouvé aucune explication possible à ca
la variable dirmusiques est : Ma\ musique
donc avec mv ça donne ça : mv *.xxx Ma\ musique
alors en tapant en ligne de commande ça marche mais dans un script ça marche pas car y a un espace (pourtant y a le \ avant je comprend pas).
La solution est :
mv *.$zik "$dirmusiques" #mettre la variable entre guillemets donc ça donnera ça :
mv *.xxx "Ma musique" #il faut enlever le \ quand tu défini la variable par contre : dirmusiques="~/Ma musique/"
il se retrouve dans documents car tout ce qui n'a pas été déplacé avant y va .
Hors ligne
#34 Le 02/09/2007, à 14:32
- Kyne
Re : [Script] dossier magique qui tri tout seul vos fichiers
Okkk !!! Merci pour l'info
il se retrouve dans documents car tout ce qui n'a pas été déplacé avant y va .
Ouais j'avais pas pensé que même si il affichait le déplacement, le mv pouvait ne pas marcher ...
Oki je vais tenter de réécrire ca alors
Hors ligne
#35 Le 02/09/2007, à 15:07
- Kyne
Re : [Script] dossier magique qui tri tout seul vos fichiers
Voila, j'ai essayé de faire ca un peu plus propre, et j'ai regroupé au dessus les options de configuration
#!/bin/bash
#-------------------------------Config du dossier de Tri ---------------------------------------
#Modifiez les dossiers ci-dessous par ceux de votre choix.
#Choisissez si désiré un fichier de log
#Choisissez un délai (défaut = 60) entre chaque analyse du dossier de tri.
dossiertri="/home/kyne/Desktop/Tri/"
dirdocument="/home/kyne/Documents/"
dirautre="/home/kyne/Documents/"
dirmusique="/home/kyne/Ma musique/Divers/"
dirvideo="/home/kyne/Mes Videos/"
dirimage="/home/kyne/Mes images/"
dirapp="/home/kyne/Desktop/"
amule="/home/kyne/.aMule/Incoming/"
output="/home/kyne/.trilog" #/dev/null si pas de log
delai=60
# -----------------NE PAS MODIFIER CI-DESSOUS----------------------------------------------------
sleep 30
cd $dossiertri
while [ 1 ]; do
#Placer ce que l'on à téléchargé avec aMule dans le dossier de TRI
mv "$amule"* .
#Vérifier si le dossier de TRI est non vide
test=`ls`
if [ -z $test ]; then
echo `date`": le dossier est vide" >> "$output"
else
echo `date`": le dossier n'est pas vide" >> "$output"
#video
for vid in mov mpeg avi wmv
do
if [ -e *.$vid ]; then
echo "Copie de " *.$vid "dans $dirvideo" >> "$output"
mv *.$vid "$dirvideo"
fi
done
#document
for doc in pdf doc odt xls odf odx txt
do
if [ -e *.$doc ]; then
echo "Copie de " *.$doc "dans $dirdocument" >> "$output"
mv *.$doc "$dirdocument"
fi
done
#musique
for zik in mp3 ogg
do
if [ -e *.$zik ]; then
echo "Copie de " *.$zik "dans $dirmusique" >> "$output"
mv *.$zik "$dirmusique"
fi
done
#images
for pic in jpg jpeg png gif psd
do
if [ -e *.$pic ]; then
echo "Copie de " *.$pic "dans $dirimage" >> "$output"
mv *.$pic "$dirimage"
fi
done
#applications
for app in deb tar.gz tar.bz2 zip rar
do
if [ -e *.$app ]; then
echo "Copie de " *.$app "dans $dirapp" >> "$output"
mv *.$app "$dirapp"
fi
done
#autres (fichiers sans extension)
if [ -e * ]; then
echo "Copie de " * "dans $dirautre" >> "$output"
mv * "$dirautre"
fi
fi
#temps en seconde entre chaque vérification de présence de fichier dans le répertoire
sleep $delai
done
Exemple du fichier de log :
dimanche 2 septembre 2007, 15:57:33 (UTC+0200): le dossier n'est pas vide
Copie de REN01.mpeg dans /home/kyne/Mes Vidéos/
Copie de 05.mp3 dans /home/kyne/Ma musique/Divers/
Copie de alucard.jpg dans /home/kyne/Mes images/
Copie de comptes wow.txt.tar.gz dans /home/kyne/Desktop/
dimanche 2 septembre 2007, 16:00:23 (UTC+0200): le dossier est vide
dimanche 2 septembre 2007, 16:03:55 (UTC+0200): le dossier n'est pas vide
Copie de REN01.mpeg dans /home/kyne/Mes Videos/
Dernière modification par Kyne (Le 02/09/2007, à 15:07)
Hors ligne
#36 Le 02/09/2007, à 16:35
- xelator
Re : [Script] dossier magique qui tri tout seul vos fichiers
pour vérifier si la copie est ok :
for vid in mov mpeg avi wmv
do
if [ -e *.$vid ]; then
echo "Copie de " *.$vid "dans $dirvideo" >> "$output"
testvideo=`mv *.$vid "$dirvideo"`
if [ -z $testvideo ]; then
echo ok >> "$output"
else
echo erreur >> "$output"
fi
done
a tester ...
Hors ligne
#37 Le 02/09/2007, à 17:35
- scholi
Re : [Script] dossier magique qui tri tout seul vos fichiers
if [ -z `ls`]
n'est pas correcte et va donc générer bcp bcp d'erreurs!
La vrai syntax qu'il faut utiliser est:
if [ -z `ls | wc -l`]
qui elle ne fait pas d'erreurs
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
Hors ligne
#38 Le 02/09/2007, à 17:51
- Kyne
Re : [Script] dossier magique qui tri tout seul vos fichiers
Oui enfin sinon pour les erreurs on peut juste faire
mv *.$vid "$dirvideo" &> "$output"
Ce qui n'imprimera rien de plus si ca marche, et
mv: ne peut évaluer xxxxxxx : Aucun fichier ou répertoire de ce type
sinon
Dernière modification par Kyne (Le 02/09/2007, à 17:52)
Hors ligne
#39 Le 02/09/2007, à 18:23
- xelator
Re : [Script] dossier magique qui tri tout seul vos fichiers
if [ -z `ls`]
n'est pas correcte et va donc générer bcp bcp d'erreurs!
La vrai syntax qu'il faut utiliser est:if [ -z `ls | wc -l`]
qui elle ne fait pas d'erreurs
oui c'est mieux effectivement
Hors ligne
#40 Le 02/09/2007, à 18:23
- xelator
Re : [Script] dossier magique qui tri tout seul vos fichiers
Oui enfin sinon pour les erreurs on peut juste faire
mv *.$vid "$dirvideo" &> "$output"
Ce qui n'imprimera rien de plus si ca marche, et
mv: ne peut évaluer xxxxxxx : Aucun fichier ou répertoire de ce type
sinon
oui c'est sur que c'est moins con
Hors ligne
#41 Le 02/09/2007, à 20:29
- olazon
Re : [Script] dossier magique qui tri tout seul vos fichiers
Serait il possible de faire la même chose avec des répertoires ?
un répertoire avec des fichiers audio serait envoyé dans ma musique
un répertoire avec des images dans mes images
...si l'utopie est une chimère comme le dit le dictionnaire,
alors nous voulons des chimères partout sur la terre... (Les barbarins fourchus)
Hors ligne
#42 Le 02/09/2007, à 20:47
- Kyne
Re : [Script] dossier magique qui tri tout seul vos fichiers
Disons qu'il faudrait parcourir récursivement les dossiers.... pour le petit malin qui veut retrier ses Documents de Windows par exemple .... ca peut se faire, mais la, j'ai la flemme
Hors ligne
#43 Le 02/09/2007, à 21:10
- scholi
Re : [Script] dossier magique qui tri tout seul vos fichiers
bon en faite j'ai quelques améliorations à apporter:
au lieu d'avoir qqch comme:
for img in jpeg jpg png bmp tiff tif eps
do
if [ -e *.$img ]; then
je ferai plutôt un
for img in `file * | grep image`
qui évite d'énumérer bêtement tout les types d'extention qui existe pour toutes les images/vidéo/...
De plus il a l'avantage de comprendre un fichier sans extention.
Et finalement c'est plus court
donc un
for img in `file * | grep image | awk '{split($0,r,":"); print r[1];}'`
do
mv $img $path_img
done
me semble plus simple et donne moins de bug
EDIT:
Voici à quoi ça pourrait ressembler
#!/bin/sh
path_text=~/Documents
path_image=~/Images
if test -d $1
then
echo "Mise en marche du tri automatique sur le répertoire: $1"
cd $1
while [ 1 ]
do
echo "Le dossier contient `ls | wc -l` fichier(s)"
for type in image text
do
for x in `file * | grep $type | awk '{split($0,r,":"); print r[1];}'`
do
echo "$type: $x"
mv $x $[path_$type]
done
done
sleep 20
done
else
echo "L'argument n'est pas un répertoire! (Argument donné: $1)"
fi
Dernière modification par scholi (Le 02/09/2007, à 21:21)
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
Hors ligne
#44 Le 02/09/2007, à 21:26
- scholi
Re : [Script] dossier magique qui tri tout seul vos fichiers
Serait il possible de faire la même chose avec des répertoires ?
un répertoire avec des fichiers audio serait envoyé dans ma musique
un répertoire avec des images dans mes images
mhmm je suis pas sur de comprendre. Tu veux quoi que:
~/Desktop/Tri/Images/* => ~/Images
~/Desktop/Tri/Videos/* => ~/Videos
etc.
?
si c'est le cas, c'est assez simple
sinon explique mieux
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
Hors ligne
#45 Le 02/09/2007, à 21:28
- xelator
Re : [Script] dossier magique qui tri tout seul vos fichiers
bon en faite j'ai quelques améliorations à apporter:
au lieu d'avoir qqch comme:
for img in jpeg jpg png bmp tiff tif eps do if [ -e *.$img ]; then
je ferai plutôt un
for img in `file * | grep image`
qui évite d'énumérer bêtement tout les types d'extention qui existe pour toutes les images/vidéo/...
De plus il a l'avantage de comprendre un fichier sans extention.
Et finalement c'est plus court
donc unfor img in `file * | grep image | awk '{split($0,r,":"); print r[1];}'` do mv $img $path_img done
me semble plus simple et donne moins de bug
EDIT:
Voici à quoi ça pourrait ressembler#!/bin/sh path_text=~/Documents path_image=~/Images if test -d $1 then echo "Mise en marche du tri automatique sur le répertoire: $1" cd $1 while [ 1 ] do echo "Le dossier contient `ls | wc -l` fichier(s)" for type in image text do for x in `file * | grep $type | awk '{split($0,r,":"); print r[1];}'` do echo "$type: $x" mv $x $[path_$type] done done sleep 20 done else echo "L'argument n'est pas un répertoire! (Argument donné: $1)" fi
très bon système , je n'avais pas les connaissances pour le faire.
au lieu de awk :
file * | grep image | cut -d":" -f1 n'irai pas ?
et aussi des "" pour :
mv "$x" $[path_$type]
Dernière modification par xelator (Le 02/09/2007, à 21:31)
Hors ligne
#46 Le 02/09/2007, à 21:30
- scholi
Re : [Script] dossier magique qui tri tout seul vos fichiers
très bon système , je n'avais pas les connaissances pour le faire.
au lieu de awk :
file * | grep image | cut -d":" -f1 n'irai pas ?
Je ne connaissais pas cut! Merci du tuyaux
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
Hors ligne
#47 Le 02/09/2007, à 22:08
- olazon
Re : [Script] dossier magique qui tri tout seul vos fichiers
olazon a écrit :Serait il possible de faire la même chose avec des répertoires ?
un répertoire avec des fichiers audio serait envoyé dans ma musique
un répertoire avec des images dans mes imagesmhmm je suis pas sur de comprendre. Tu veux quoi que:
~/Desktop/Tri/Images/* => ~/Images
~/Desktop/Tri/Videos/* => ~/Videos
etc.
?
si c'est le cas, c'est assez simple
sinon explique mieux
par exemple un dossier nommé "artiste" contenant des ogg
serait déplacé dans ~/musique
autrement dis déplacer le répertoire avec son contenu
...si l'utopie est une chimère comme le dit le dictionnaire,
alors nous voulons des chimères partout sur la terre... (Les barbarins fourchus)
Hors ligne
#48 Le 02/09/2007, à 22:30
- Kyne
Re : [Script] dossier magique qui tri tout seul vos fichiers
Je pense que par exemple, les fichiers ogg ne sont pas considérés comme des fichiers "audio", d'ou l'idée des extensions
Maintenant, si y'a que pour les ogg, on peut rajouter un cas
Hors ligne
#49 Le 02/09/2007, à 23:18
- Link31
Re : [Script] dossier magique qui tri tout seul vos fichiers
Je pense que par exemple, les fichiers ogg ne sont pas considérés comme des fichiers "audio", d'ou l'idée des extensions
Ah bon? Et audio/x-vorbis, c'est quoi ?
Ça fonctionne aussi avec file :
link31@linux ~ $ file test.ogg
test.ogg: Ogg data, Vorbis audio, mono, 44100 Hz, ~86000 bps, created by: Xiph.Org libVorbis I
Dernière modification par Link31 (Le 02/09/2007, à 23:20)
Hors ligne
#50 Le 02/09/2007, à 23:25
- olazon
Re : [Script] dossier magique qui tri tout seul vos fichiers
Je pense que par exemple, les fichiers ogg ne sont pas considérés comme des fichiers "audio", d'ou l'idée des extensions
Maintenant, si y'a que pour les ogg, on peut rajouter un cas
je disais ogg à titre d'exemple mais j'aurais pu dire flac ou mp3
...si l'utopie est une chimère comme le dit le dictionnaire,
alors nous voulons des chimères partout sur la terre... (Les barbarins fourchus)
Hors ligne