Déplacer des fichiers et sous répertories en masse

Résolu/Fermé
pcsystemd Messages postés 702 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 6 novembre 2024 - Modifié par pcsystemd le 15/07/2016 à 11:08
pcsystemd Messages postés 702 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 6 novembre 2024 - 27 juil. 2016 à 10:34
Bonjour,

Comment pourrais je faire simple pour déplacer des fichiers et sous répertoires pour une liste de répertoires.
Je m'explique.

J'ai plusieurs dizaines de répertoires qui se nomment :
1
9
22
151
2015
5698
30

Je voudrais déplacer tous les fichiers et sous répertoires qui sont dans ces derniers et uniquement pour cel (liste de repertoires))vers un autre dossier.

Comment faire cela? Peut être via FIND, AWK,etc..

Merci pour votre aide.



L'accès au savoir est la première liberté que chaque homme devrait avoir.
A voir également:

4 réponses

zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 419
15 juil. 2016 à 11:30
Salut,

Il faudrait être plus précis dans ta demande ;-\

Faut-il déplacer QUE le contenu desdits dossiers ou bien lesdits dossiers eux-mêmes ?

Pour le dossier 151 par exemple, il faut déplacer que son contenu ou directement le dossier ?

Petit exemple pour étayer ma demande :

Le contenu de mon répertoire :
$ tree
.
|-- 151
| |-- a
| |-- b
| |-- c
| `-- d
| |-- e
| |-- f
| `-- g
`-- rep

9 directories, 0 files


On déplace le dossier et son contenu :
$ mv -v 151 rep/
«151» -> «rep/151»


Vérification :
$ tree
.
`-- rep
`-- 151
|-- a
|-- b
|-- c
`-- d
|-- e
|-- f
`-- g

9 directories, 0 files


On recrée le dossier et son contenu :
$ mkdir -p 151/{a,b,c,d/{e,f,g}}

$ tree
.
|-- 151
| |-- a
| |-- b
| |-- c
| `-- d
| |-- e
| |-- f
| `-- g
`-- rep
`-- 151
|-- a
|-- b
|-- c
`-- d
|-- e
|-- f
`-- g

17 directories, 0 files


On ne déplace que le contenu du dossier :
$ mv -v 151/* rep/
«151/a» -> «rep/a»
«151/b» -> «rep/b»
«151/c» -> «rep/c»
«151/d» -> «rep/d»

$ tree
.
|-- 151
`-- rep
|-- 151
| |-- a
| |-- b
| |-- c
| `-- d
| |-- e
| |-- f
| `-- g
|-- a
|-- b
|-- c
`-- d
|-- e
|-- f
`-- g

17 directories, 0 files


0
dubcek Messages postés 18758 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 24 décembre 2024 5 623
15 juil. 2016 à 13:26
hello
$ for d in $(cat liste); do echo mv $d/* /dest; done
mv 1/* /dest
mv 9/* /dest
mv 22/* /dest
mv 151/* /dest
mv 2015/* /dest
mv 5698/* /dest
mv 30/* /dest

enever le echo si c'est ok
0
pcsystemd Messages postés 702 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 6 novembre 2024 23
Modifié par pcsystemd le 15/07/2016 à 15:37
Merci a vous deux.

Alors pour répondre a ta question zipe31 il faut que je déplace les fichiers et pour les sous dossier il faut déplacer tous le dossier .


L'accès au savoir est la première liberté que chaque homme devrait avoir.
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 419
15 juil. 2016 à 15:43
Ça ne répond toujours pas à mes attentes ;-\

Dans cet exemple :
$ tree
.
`-- 151
|-- a
|-- b
| `-- fich
|-- c
`-- d
|-- e
|-- f
| `-- fich
`-- g

Que faudrait-il déplacer exactement ?
151 avec tout ce qu'il contient ?
Ou uniquement son contenu ?
0
pcsystemd Messages postés 702 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 6 novembre 2024 23
27 juil. 2016 à 10:34
Salut zipe31,

désolé je repond tardivement!

Il fallait que je déplace 151 et otu ce qu'il y a dedans.

Mais c'est résolu.

Merci
0