Partage
  • Partager sur Facebook
  • Partager sur Twitter

problème avec la cmd mv

besoin d'aide

    13 octobre 2017 à 23:49:44

    bonjour 

    j'ai créer 16 fichiers vides dont les noms sont la combinaison en deux lettres des lettres a, b, c et d. Exemple : aa, bc, …avec 4 répertoires dossier A, dossier B, dossier C et dossier D

    je veux déplacer tous les fichiers qui commencent par a dans le dossier A, tous les fichiers qui commencent par b dans le répertoire dossier B, tous les fichiers qui commencent par c dans le répertoire dossier C, de même pour d.

    j'ai utilisé la commande mv d* 'dossier D' mais cette commande génère l'erreur suivante :

    mv: impossible de déplacer 'dossier D' dans un sous répertoire de lui même , 'dossier D'/dossier D'

    svp aider moi

     
    • Partager sur Facebook
    • Partager sur Twitter
      14 octobre 2017 à 2:56:28

      ^^

      Bonsoir,

      Quand vous faîte un

      mv d* 'dossier D'

      c'est comme si vous faisiez un

      mv 'dossier D' da db dc dd 'dossier D'

      Et vu que le système ne pas déplacer un dosssier dans lui même, il donne un avertissement, cependant si vous regarder dans votre dossier "dossier D" vous verrez que tous vos fichier on bien été déplacé dans le "dossier D" et donc il n'y a aucun problème, tout va dans le meilleur des mondes ^^

      -
      Edité par AgricanMetivier 22 octobre 2017 à 15:12:57

      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        14 octobre 2017 à 12:22:47

        Sinon tu peux faire :

        mv d{a,b,c,d} "dossier D"



        -
        Edité par Anonyme 14 octobre 2017 à 12:23:05

        • Partager sur Facebook
        • Partager sur Twitter
          14 octobre 2017 à 14:19:59

          Bonjour,

          Je pense que le mieux est d'utiliser l'option --target-directory du programme mv :

          mv -t dossierA a*


          Du coup :

          for letter in {a..d};do mv ${letter}? "Document ${letter^^}"; done

          Pour info, il s'agit de spécificités du Bash :

          • {a..d} : la séquences des lettres a à d, soit : 'a b c d'
          • ${letter}? : tout les noms de fichiers commençant par la lettre souhaitez (cad a, b, c ou d) et comportant une autre lettre
          • ${letter^^} : mettre en majuscule la lettre (cad. a -> A, b -> B, c -> C, d -> D)

          -
          Edité par mika83 14 octobre 2017 à 14:34:39

          • Partager sur Facebook
          • Partager sur Twitter
            14 octobre 2017 à 19:58:45

            je vous remercie tous pour le retour :)

            à propos le dernière commande avec la boucle for est ce que je peux l'utiliser pour renommer tous les fichiers qui se terminent par "c" par fichiern où n représente un nombre{1,2,3, etc}

            j'ai fait la commande suivante mais elle génère un message d'erreur

            forletter in{"*c"};do mv ${letter} ${letter}{"1,2,3"}done


            • Partager sur Facebook
            • Partager sur Twitter
              15 octobre 2017 à 11:45:54

              quel message d'erreur ?
              • Partager sur Facebook
              • Partager sur Twitter

              Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique

                16 octobre 2017 à 8:05:20

                RamaMed17 a écrit:

                je vous remercie tous pour le retour :)

                à propos le dernière commande avec la boucle for est ce que je peux l'utiliser pour renommer tous les fichiers qui se terminent par "c" par fichiern où n représente un nombre{1,2,3, etc}

                j'ai fait la commande suivante mais elle génère un message d'erreur

                forletter in{"*c"};do mv ${letter} ${letter}{"1,2,3"}done


                Une solution en utilisant une autre variable :

                i=0
                for filename in *c; do
                  ((i++))
                  mv $filename ${filename}${i}
                done



                • Partager sur Facebook
                • Partager sur Twitter
                  16 octobre 2017 à 13:43:18

                  n'oubliez pas de mettre des guillemets autour des variables.
                  • Partager sur Facebook
                  • Partager sur Twitter

                  Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique

                  problème avec la cmd mv

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown