Déplacer en masse sous Linux

Résolu
Bonjour à tous,

Voilà j'ai un petit problème :

Je possède un répertoire qui est construit de cette manière :

adresse_de_mon_répertoire
{
Volume_001
{
001
{
Les_fichiers_que_je_veux_déplacer
{
Volume_002
{
002
{
Encore_des_fichiers_que_je_veux_déplacer

etc... en sachant qu'il y a 151 répertoire "Volume_xxx"

Je voudrais déplacer les fichiers se trouvant dans adresse_de_mon_répertoire/Volume_001/001/ dans adresse_de_mon_répertoire/Volume_001/ mais je voudrais faire ça pour tous les répertoires "Volume_xxx" en même temps.

Cela est-il possible ? :D

Merci d'avance !

4 réponses

  1. Modérateur
    [tmpfs]$ tree
    .
    `-- Rep_Principal
        |-- Volume_001
        |   `-- 001
        |       |-- fichA.txt
        |       |-- fichB.txt
        |       `-- fichC.txt
        |-- Volume_002
        |   `-- 002
        |       |-- fichD.txt
        |       |-- fichE.txt
        |       `-- fichF.txt
        |-- Volume_003
        |   `-- 003
        |       |-- fichG.txt
        |       |-- fichH.txt
        |       `-- fichI.txt
        |-- Volume_004
        |   `-- 004
        |       |-- fichK.txt
        |       |-- fichL.txt
        |       `-- fichM.txt
        |-- Volume_005
        |   `-- 005
        |       |-- fichN.txt
        |       |-- fichO.txt
        |       `-- fichP.txt
        |-- Volume_006
        |   `-- 006
        |       |-- fichQ.txt
        |       |-- fichR.txt
        |       `-- fichS.txt
        |-- Volume_007
        |   `-- 007
        |       |-- fichT.txt
        |       |-- fichU.txt
        |       `-- fichV.txt
        |-- Volume_008
        |   `-- 008
        |       |-- fichW.txt
        |       |-- fichX.txt
        |       `-- fichY.txt
        `-- Volume_009
            `-- 009
                `-- fichZ.txt
    
    19 directories, 25 files
    
    [tmpfs]$ find Rep_Principal/ -type f -exec bash -c 'dir=$(dirname $1); mv $1 ${dir%/*}' _ {} \; 2>/dev/null
    
    [tmpfs]$ tree
    .
    `-- Rep_Principal
        |-- Volume_001
        |   |-- 001
        |   |-- fichA.txt
        |   |-- fichB.txt
        |   `-- fichC.txt
        |-- Volume_002
        |   |-- 002
        |   |-- fichD.txt
        |   |-- fichE.txt
        |   `-- fichF.txt
        |-- Volume_003
        |   |-- 003
        |   |-- fichG.txt
        |   |-- fichH.txt
        |   `-- fichI.txt
        |-- Volume_004
        |   |-- 004
        |   |-- fichK.txt
        |   |-- fichL.txt
        |   `-- fichM.txt
        |-- Volume_005
        |   |-- 005
        |   |-- fichN.txt
        |   |-- fichO.txt
        |   `-- fichP.txt
        |-- Volume_006
        |   |-- 006
        |   |-- fichQ.txt
        |   |-- fichR.txt
        |   `-- fichS.txt
        |-- Volume_007
        |   |-- 007
        |   |-- fichT.txt
        |   |-- fichU.txt
        |   `-- fichV.txt
        |-- Volume_008
        |   |-- 008
        |   |-- fichW.txt
        |   |-- fichX.txt
        |   `-- fichY.txt
        `-- Volume_009
            |-- 009
            `-- fichZ.txt
    
    19 directories, 25 files
    
    [tmpfs]$
    ;-))
    1. Merci ça marche parfaitement :D
  2. Salut
    Merci de l'intérêt que tu portes à mon problème ^^

    Par rapport à l'arborescence que tu as faite, c'est tout à fait ça (les fichiers que je veux déplacer sont des images).

    Et ce que je veux, c'est déplacer tous les fichiers se trouvant dans 001 dans Volume_001, tous les fichiers se trouvant dans 002 dans Volume_002 etc...
    1. Modérateur
      Salut,

      Histoire qu'on se comprenne bien...

      En partant d'une arborescence comme suit :
      $ tree
      .
      `-- Rep_Principal
          |-- Volume_001
          |   `-- 001
          |       |-- fichA.txt
          |       |-- fichB.txt
          |       `-- fichC.txt
          |-- Volume_002
          |   `-- 002
          |       |-- fichD.txt
          |       |-- fichE.txt
          |       `-- fichF.txt
          |-- Volume_003
          |   `-- 003
          |       |-- fichG.txt
          |       |-- fichH.txt
          |       `-- fichI.txt
          |-- Volume_004
          |   `-- 004
          |       |-- fichK.txt
          |       |-- fichL.txt
          |       `-- fichM.txt
          |-- Volume_005
          |   `-- 005
          |       |-- fichN.txt
          |       |-- fichO.txt
          |       `-- fichP.txt
          |-- Volume_006
          |   `-- 006
          |       |-- fichQ.txt
          |       |-- fichR.txt
          |       `-- fichS.txt
          |-- Volume_007
          |   `-- 007
          |       |-- fichT.txt
          |       |-- fichU.txt
          |       `-- fichV.txt
          |-- Volume_008
          |   `-- 008
          |       |-- fichW.txt
          |       |-- fichX.txt
          |       `-- fichY.txt
          `-- Volume_009
              `-- 009
                  `-- fichZ.txt
      
      19 directories, 25 files
      Tu voudrais déplacer tous les fichiers "fich?.txt" dans le répertoire "Rep_Principal/Volume_001/", c'est ça ?
      1. Le message au dessus a mal été tapppé :

        001 se trouve dans Volume_001 qui se trouve lui même dans le répertoire principal
        002 se trouve dans Volume_002 qui se trouve lui même dans le répertoire principal
        003 se trouve dans Volume_003 qui se trouve lui même dans le répertoire principal
        etc...

        Merci d'avance :D