Déplacer des fichiers vers de nouveaux dossiers indépendants [Résolu/Fermé]

Signaler
Messages postés
574
Date d'inscription
vendredi 30 novembre 2007
Statut
Membre
Dernière intervention
5 janvier 2016
-
Messages postés
574
Date d'inscription
vendredi 30 novembre 2007
Statut
Membre
Dernière intervention
5 janvier 2016
-
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

Messages postés
36271
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
19 janvier 2021
5 852
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 63550 internautes nous ont dit merci ce mois-ci

Messages postés
574
Date d'inscription
vendredi 30 novembre 2007
Statut
Membre
Dernière intervention
5 janvier 2016
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