Déplacer des fichiers vers de nouveaux dossiers indépendants

Résolu
infintous Messages postés 607 Date d'inscription   Statut Membre Dernière intervention   -  
infintous Messages postés 607 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai des centaines de fichiers d'un dossier que je voudrais déplacer vers de nouveaux sous dossier, portant le nom de ces fichiers. (voir illustration à la fin pour mieux comprendre)
Les noms de ces fichiers sont aléatoires et je veux que tous les fichiers du dossier subissent ce déplacement.

Auriez vous une commande Shell à me proposer?

Merci d'avance

illustration:

Avant:
-/Home/toto/blabla.txt
-/Home/toto/bloblo.txt

Apres:
-/Home/toto/blabla/blabla.txt
-/Home/toto/bloblo/bloblo.txt

1 réponse

  1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 502
     
    Salut,

    $ ls -1
    tata.txt
    tete.txt
    titi.txt
    toto.txt
    tutu.txt
    tyty.txt

    $ for i in *.*;do mkdir -pv "${i%.*}" && mv -fv "${i}" "${i%.*}/";done
    mkdir: création du répertoire «tata»
    «tata.txt» -> «tata/tata.txt»
    mkdir: création du répertoire «tete»
    «tete.txt» -> «tete/tete.txt»
    mkdir: création du répertoire «titi»
    «titi.txt» -> «titi/titi.txt»
    mkdir: création du répertoire «toto»
    «toto.txt» -> «toto/toto.txt»
    mkdir: création du répertoire «tutu»
    «tutu.txt» -> «tutu/tutu.txt»
    mkdir: création du répertoire «tyty»
    «tyty.txt» -> «tyty/tyty.txt»

    $ tree
    .
    |-- tata
    | `-- tata.txt
    |-- tete
    | `-- tete.txt
    |-- titi
    | `-- titi.txt
    |-- toto
    | `-- toto.txt
    |-- tutu
    | `-- tutu.txt
    `-- tyty
    `-- tyty.txt

    6 directories, 6 files

    1
    1. infintous Messages postés 607 Date d'inscription   Statut Membre Dernière intervention   42
       
      Merci beaucoup, c'est exactement la commande qu'il me fallait!

      Pour info à d'autres que cela aiderai:
      La commande de zipe31 n'est pas récursive.
      c'est à dire qu'elle ne traite fait pas de changements dans les sous dossier
      0