IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linux Discussion :

Script de déplacement fichiers


Sujet :

Linux

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 9
    Points : 7
    Points
    7
    Par défaut Script de déplacement fichiers
    Bonjour à vous messieurs

    Je viens donc par ici solliciter de l'aide concernant une petite fonction que j'aimerais écrire en code.

    Le but, est de déplacer des fichiers, contenus dans une structure de dossier toujours équivalente, dans un dossier prédéfinis.
    Ce "script" serait exécuter périodiquement.

    repertoireparent/repertoire1/monfichier1_dateheure.extension
    repertoireparent/repertoire1/monfichier2_dateheure.extension
    repertoireparent/repertoire1/monfichier2_dateheure.extension
    repertoireparent/repertoire1/sousrepertoire1/
    repertoireparent/repertoire1/sousrepertoire2/
    repertoireparent/repertoire1/sousrepertoire3/

    En somme il s'agit de faire du "rangement" de fichier de manière automatique ^^

    Il me faudrait pour l'executer en local sur mon serveur debian, par Cron ca serait le top.
    Le top du top serait un truc faisable en php de manière à ce que je puisse l'inclure en bouton ou fonction sur une page web.

    Voilà donc, si vous avez des conseils à me donner à la fois sur le language de programmation qui semble le plus adapté ainsi qu'un début de piste avec les fonctions utiles, je suis preneur

  2. #2
    Membre averti Avatar de fransoo
    Inscrit en
    Novembre 2009
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 209
    Points : 300
    Points
    300
    Par défaut
    Selon quels critères ?
    Tous les fichier ? de 1, plusieurs ou tous les sous répertoires ?
    En fait déplacer se fait par renommage. Je conseille de consulter la page de manuel :

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    Oui effectivement tout les fichiers, et pour les critères c'est en fonction de leur nom si il commence comme le nom du répertoire désiré

    Voilà grâce à ta piste je suis arrivé à bien avancer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mv -t Dossier1 Fichier1_* && mv -t Dossier2 Fichier2_* && mv -t Dossier3 Fichier3_* && mv -t Dossier4 Fichier4_* && mv -t Dossier5 Fichier5_* && mv -t Dossier6 Fichier6_* && cd .. && mv -t DossierAmont/Dossier1 Fichier1_*
    Cependant j'ai un bug, lorsque un type de fichier n'existe pas, il me retourne une erreur et arrête mon traitement

    J'ai tenté en rajoutant un "-f" en arguement supplémentaire mais sans succès

    Enfin pour le finish, j'aimerais employé cette commande par page web, php par exemple, c'est possible simplement ?

  4. #4
    Membre averti Avatar de fransoo
    Inscrit en
    Novembre 2009
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 209
    Points : 300
    Points
    300
    Par défaut
    Ça vient du chaînage avec && : La commande suivante ne s'exécute qui si la précédente a réussi.
    Avec les commandes répétitives il vaut mieux utiliser une boucle:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for N in 1 2 3 4 5 6
    do
       mv -t Dossier$N Fichier$N_*
    done
    cd .. 
    mv -t DossierAmont/Dossier1 Fichier1_*

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    Je vois pas trop comment l'utiliser mais merci en tout cas d'essayer de m'aider ^^

    J'ai donc penché pour un code facon batch dans un sh, et plutôt que d'enchainer les && je fais des retour à la ligne

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 24
    Points : 24
    Points
    24
    Par défaut
    Le code de fransoo fait la meme chose que le tiens. Il a juste "améliorer". Le programmeur délègue les taches redondantes a l'ordi en utilisant des boucles, elle permettent la répétition d'un bloc de commandes
    Là le $N sera remplacé par les arguments donné dans le FOR (ici : 1 2 3 4 5 6
    ).
    Ce n'est pas plus efficace, mais le code est beaucoup lisible, facilement maintenable/modifiable et surtout c'est chiant a écrire.

    http://doc.ubuntu-fr.org/tutoriel/script_shell?s[]=boucle&s[]=for#la_structure_for

Discussions similaires

  1. Script de déplacement fichier
    Par virusider dans le forum Shell et commandes GNU
    Réponses: 7
    Dernier message: 28/03/2015, 17h34
  2. [Batch] Script de déplacement de fichiers datant de 10 jours
    Par sousket dans le forum Scripts/Batch
    Réponses: 7
    Dernier message: 15/06/2011, 17h49
  3. Script de déplacement de fichier wav qui ne fonctionne pas
    Par maxtofurious dans le forum VBScript
    Réponses: 1
    Dernier message: 24/12/2009, 18h19
  4. SunOS 5.8 script de déplacement de fichier
    Par aaron dans le forum Unix
    Réponses: 1
    Dernier message: 05/04/2008, 20h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo