(BASH) Deplacer un fichier en fonction de son extension...

Deplacer un fichier en fonction de son extension... (BASH) - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 26-02-2006 à 20:41:29    

Je souhaite réaliser un script bash, qui une fois appelé listerai un dossier, et qui ferai un mv des fichiers placés dans ce dossier pour les placer dans un autre dossier en fonction de l'extension du fichier : du genre un .avi est place dans ~/video...
 
Comment pourrai-je faire... ???
MERCI d'avance...

Reply

Marsh Posté le 26-02-2006 à 20:41:29   

Reply

Marsh Posté le 26-02-2006 à 20:43:09    

commence par des tutorial :)
Car ça me parait relativement simple, donc tu ne dois pas avoir d'expérience dans la matière
Apprends, commence ton script et si t'as un problème reviens nous voir avec du code :D

Reply

Marsh Posté le 26-02-2006 à 20:50:07    

Ben tu peux faire encore mieux : trier les fichiers par type dans le repertoire associé, en fonction du type du fichier (même si le fichier est mal nommé donc) :

Code :
  1. for i in *; do
  2.   dir="$(file -b -i "$i" )"
  3.   mkdir -p "$dir"
  4.   mv "$i" "$dir"
  5. done


 
NB : pour voir ce que fait le script sans rien déplacer, tu ajoutes "echo " devant le "mv" à l'avant dernière ligne.

Reply

Marsh Posté le 26-02-2006 à 22:34:37    

et comment pourrai-je introduire un déplacement vers tel ou tel dossier en fonction de l'extension.

Reply

Marsh Posté le 26-02-2006 à 22:58:52    

Avec des conditions. Je sais pas faire mais je suggère  :hello:


---------------
http://wiki.incloudus.com/display/DOC | http://blog.incloudus.com | http://wiki.goldzoneweb.info | http://www.stendhalclub.fr
Reply

Marsh Posté le 26-02-2006 à 23:04:19    

tu fais un case


case $i in
  ".txt" )
    mv sdf sdf
   ;;
  *)
    mv fds fsd
  ;;
esac

Reply

Marsh Posté le 26-02-2006 à 23:40:12    

avec avant sdf par exmple le chemin absolu du dossier ou je veux les placer... ???

Reply

Marsh Posté le 26-02-2006 à 23:57:26    

Clochette POWER a écrit :

et comment pourrai-je introduire un déplacement vers tel ou tel dossier en fonction de l'extension.


 
Faut faire un pti effort hein...

Reply

Marsh Posté le 27-02-2006 à 07:42:29    

Clochette POWER a écrit :

avec avant sdf par exmple le chemin absolu du dossier ou je veux les placer... ???


 

arsunik a écrit :

Faut faire un pti effort hein...


Reply

Marsh Posté le 03-03-2006 à 15:30:31    

bonjour
 
Juste comme sa en compliquant les choses , imaginont que le repertoire darriver de video soit un repertoire de téléchargement comment faire pour deplacer le fichier seulement une fois le telechargement fini.
je ne demande pas de code juste une indication un indice si vous avez et rien si vous n'avez rien :) .
( solution UNIX linux c ok)  

Reply

Marsh Posté le 03-03-2006 à 15:30:31   

Reply

Marsh Posté le 03-03-2006 à 20:12:56    

Si le repertoire est sur la même partition, tu peux le déplacer pendant le téléchargement.
Sinon, tu peux utiliser une des méthodes suivantes :

Code :
  1. fuser <fichier>
  2. lsof <fichier>
  3. ls -l /proc/*/fd/* 2>/dev/null | grep <fichier>


Reply

Marsh Posté le 04-03-2006 à 18:18:59    

Merci  
ArSunik je pensais aussi au lsof et au /proc pb majeur lsof n'est pas portale sur bcp de systeme (trop recent) et le /proc n'est diponible que sur peu de machine, aller savoir pourquoi.  
Je conclus que le lsof est obligatoire :\ .  
NB
fuser fonctionnne avec le /proc donc réponse  identique.
 
Merci mes craintes son confirmées il va falloir que j'etudie les OS en profondeur pour pouvoir faire tourner ma petite aplli .

Reply

Marsh Posté le 06-03-2006 à 04:21:52    

Sur quel(s) système(s) /proc n'est-il pas disponible ?

Reply

Marsh Posté le 07-03-2006 à 15:30:40    

bjour
Pas sur quel(s) systeme(s) sur quel machine exemple avec des systemes AIX HP_UX anterieur a 11.0 ben 3 fois sur 5 le system de fichier /proc est indisponible raison pour laquelle fuser et autre commande fonctionne trés mal.  
 
Le systeme permet l'utilisation de /proc mais etrangement il n'y est pas présent.

Reply

Marsh Posté le 07-03-2006 à 21:46:33    

/proc existe sur AIX depuis 5.1, c'est a dire sur toutes les versions actuellement supportees. Si tu n'as pas de /proc, il faut le monter (mount -v procfs /proc /proc).

Reply

Marsh Posté le 08-03-2006 à 14:18:25    

Merci matafan,  
 
je vais faire en sorte de mettre mes machines à jour meme si le probleme reste tjs ( impossible de modifier le systeme d'un inconu :)).
 
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed