[files] déplacer en masse

Applications, problèmes de configuration réseau
Taema
Hankyu
Messages : 31
Inscription : sam. 11 nov. 2017, 20:12

[files] déplacer en masse

Message par Taema »

Bonjour,

J'ai des fichiers dans une arborescence comme ceci :

Code : Tout sélectionner

Dossier 1 -
                | 
                -----> Sous-Dossier 1 -
                                                |
                                                 -----> Fichier 1
                                                 -----> Fichier 2
                                                 -----> Fichier 3
                ----->  Sous-Dossier 2
                                                |
                                                 -----> Fichier 1
                                                 -----> Fichier 2
                                                 -----> Fichier 3
                ----->  Sous-Dossier 3
                                                |
                                                 -----> Fichier 1
                                                 -----> Fichier 2
                                                 -----> Fichier 3
Je voudrais déplacer tous les fichiers dans le Dossier 1 (en "vrac") comment est-ce que je peux faire ?

Merci
Avatar de l’utilisateur
Xorg
Maître du Kyudo
Messages : 1933
Inscription : dim. 22 janv. 2012, 19:25
Localisation : Entre le clavier et la chaise.

Re: [files] déplacer en masse

Message par Xorg »

Je suppose que tu veux une commande ?
En te plaçant dans "Dossier 1", puis :

Code : Tout sélectionner

mv */* .
C'est tout. :)

Si tu veux supprimer les répertoires vides, il est possible d'utiliser la commande suivante :

Code : Tout sélectionner

rmdir *
(rmdir refusera d'effacer les fichiers, c'est normal.)
Arch Linux x86_64 - Sway
AMD Ryzen 5 3600X - 32 Go de DDR4 - SSD NVMe 1 To + SSD SATA 250 Go - Sapphire NITRO+ Radeon RX 580
Image AUR___Image Wiki___Image GitHub
Taema
Hankyu
Messages : 31
Inscription : sam. 11 nov. 2017, 20:12

Re: [files] déplacer en masse

Message par Taema »

Ah génial et si j'ai d'autres sous dossiers il les prendra en compte ou il faut rajouter un / à chaque fois ?

Et pour récupérer un type d'extension je fais mv */*.mp3 . ?
Avatar de l’utilisateur
Xorg
Maître du Kyudo
Messages : 1933
Inscription : dim. 22 janv. 2012, 19:25
Localisation : Entre le clavier et la chaise.

Re: [files] déplacer en masse

Message par Xorg »

mv est une des rares commandes Unix qui traite les répertoires de la même façon que les fichiers, j'entends par là que ça déplacera aussi les répertoires que les fichiers. Donc pas besoin de rajouter un /. Cependant, bien que la commande déplace le contenu des sous-dossiers au dossier, les sous-sous-dossiers seront déplacés dans le "Dossier 1", tels qu'ils l'étaient.
Si ton objectif est de ne garder aucun sous-dossier/sous-sous-dossier/... il faudra plutôt utiliser une autre commande (à base de find).

Oui, le joker * prend tout, et tu peux filtrer aux fichiers d'extensions .mp3 avec *.mp3.

Un autre exemple pour déplacer tous les fichiers .mp3 en vrac dans "Dossier 1" (j'ai mis ., ce qui implique que tu lances cette commande depuis le "Dossier 1") :

Code : Tout sélectionner

find . -iname *.mp3 -type f -exec mv -t . {} +
Et pour supprimer tous les répertoires/sous-répertoires/sous-sous-répertoires/... vides :

Code : Tout sélectionner

find . -type d -empty -delete
Arch Linux x86_64 - Sway
AMD Ryzen 5 3600X - 32 Go de DDR4 - SSD NVMe 1 To + SSD SATA 250 Go - Sapphire NITRO+ Radeon RX 580
Image AUR___Image Wiki___Image GitHub
avi3000
Chu Ko Nu
Messages : 404
Inscription : dim. 19 juin 2011, 18:53
Localisation : dans le neuf trois

Re: [files] déplacer en masse

Message par avi3000 »

Bonsoir,

Pour déplacer, la syntaxe est plus simple avec globstar.

Code : Tout sélectionner

shopt -s globstar
mv **/*.mp3 .
Attention (quelle que soit la commande utilisée) : Si des fichiers portent le même nom dans des dossiers différents, seul le dernier fichier déplacé sera conservé.
Répondre