Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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

ferreol a écrit :

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

olazon a écrit :

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 smile

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 hmm

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

Kyne a écrit :

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 hmm

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 smile

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 wink

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 smile

#!/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 smile

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

scholi a écrit :
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

Kyne a écrit :

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 smile

oui c'est sur que c'est moins con big_smile

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 big_smile

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

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 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

scholi a écrit :

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

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

xelator a écrit :

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

scholi a écrit :
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 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

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 tongue

Maintenant, si y'a que pour les ogg, on peut rajouter un cas wink

Hors ligne

#49 Le 02/09/2007, à 23:18

Link31

Re : [Script] dossier magique qui tri tout seul vos fichiers

Kyne a écrit :

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 tongue

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

Kyne a écrit :

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 tongue

Maintenant, si y'a que pour les ogg, on peut rajouter un cas wink

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