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

Shell et commandes GNU Discussion :

Deplacer fichier vers un repertoire


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Février 2005
    Messages
    367
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 367
    Par défaut Deplacer fichier vers un repertoire
    Bonjour
    je voudrais deplacer des fichiers presents dans les repertoires (les repertoires sont presents dans le repertoire courant) vers le repertoire courant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    #!/bin/bash
     
    IFS=" "
     
     
    for i in $*
      do 
          for fichier in $(ls ./$i)
             do 
                mv $fichier .
     
               done
      done
    Mais quand je teste par exemple

    commande : r./programme repertoire 1 repertoire2
    mv: cannot stat fichier1.txt': No such file or directory
    sachant que fichier 1 est dans le repertoire1
    les 2 repertoires sont dans le repertoire courant

    Avez vous une idee de l origine de l erreur

    merci

  2. #2
    Membre chevronné
    Avatar de Schmorgluck
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    371
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2006
    Messages : 371
    Par défaut
    Yup. Ta variable $fichier ne contient jamais qu'un nom de fichier issu de ls, or ls ne renvoie pas le chemin relatif, mais uniquement le nom terminal.
    En l'occurrence et après interpolation, tu essaies d'exécuter
    D'où souci.

    Avec ça marche déjà mieux.

    D'autre part, tu t'embêtes pour rien avec une boucle de trop. mv peut traiter plusieurs fichiers à la fois si c'est pour les changer de répertoire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #!/bin/bash
    IFS=" "
     
    for i in $*
    do 
        mv $i/* .
    done

  3. #3
    Membre éclairé
    Inscrit en
    Février 2005
    Messages
    367
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 367
    Par défaut trouver fichier identique dans 2 repertoire
    bonjour
    je voudrait verifier si un fichier est present a la fois dans 2 repertoires

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    for i in repertoire1/* 
    do
    cd r./epertoire2
      if [ -r $i ] 
      then
          echo i
          cat  repertoire1/$2  >> repertoire2/$i
    fi
    done
    mais il ne m<affiche pas le nom du fichier present dans les 2 repertoires et ne les concatene pas non plus
    Une explication ....

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WD15] Copie de fichier vers un repertoire
    Par kinansoag dans le forum WinDev
    Réponses: 8
    Dernier message: 17/06/2011, 16h49
  2. Uploader un fichier vers un repertoire précis
    Par Viscapon dans le forum Struts 1
    Réponses: 9
    Dernier message: 20/03/2009, 17h01
  3. Réponses: 4
    Dernier message: 19/03/2009, 11h35
  4. copier un fichier vers un autre repertoire existant
    Par kohsaka dans le forum VB.NET
    Réponses: 2
    Dernier message: 08/02/2008, 16h07
  5. [batch] deplacer n-1 fichiers vers un repertoire
    Par liloo974 dans le forum Scripts/Batch
    Réponses: 3
    Dernier message: 10/11/2007, 10h00

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