Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 14/10/2010, à 10:54

cracolinux

[✔] Déplacer des fichiers vers le dossier parent avec find

Bonjour,

J'ai ce genre d'arborescence :

/home/toto/dossier1/a/ -lesfichiers
/home/toto/dossier2/a/ -lesfichiers
/home/toto/dossier3/a/ -lesfichiers
/home/toto/dossier4/a/ -lesfichiers
etc.

Je voudrais déplacer les fichiers de ces dossiers dans le dossier parent de façon à avoir ceci (avec le repertoire a/ vidé )

/home/toto/dossier1/ a/
/home/toto/dossier1/lesfichiers

/home/toto/dossier2/ a/
/home/toto/dossier2/lesfichiers

/home/toto/dossier3/ a/
/home/toto/dossier3/ lesfichiers

/home/toto/dossier4/ a/
/home/toto/dossier4/ lesfichiers

j'ai essayé un tas de trucs avec find et mv ...mais je tourne en rond...depuis un bout de temps

a vot' bon coeur !

Dernière modification par cracolinux (Le 01/10/2014, à 07:34)


Pixup : postez vos images vite et bien - Wificheck : Aidez nous à vous aider

« Ne devenez jamais pessimiste. Un pessimiste a plus souvent raison qu'un optimiste, mais l'optimiste s'amuse plus — et aucun des deux ne peut arrêter la marche du monde. » R.Heinlein

Hors ligne

#2 Le 14/10/2010, à 11:22

Postmortem

Re : [✔] Déplacer des fichiers vers le dossier parent avec find

while read fic
do
cd ${fic%/*}
mv ${fic##*/} ..
done < <(find /home/toto/dossier?/a ! -type d)

Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »

Hors ligne

#3 Le 14/10/2010, à 13:03

cracolinux

Re : [✔] Déplacer des fichiers vers le dossier parent avec find

Merci Postmortem!!

Ça marche parfaitement, reste plus qu'a comprendre!!


Pixup : postez vos images vite et bien - Wificheck : Aidez nous à vous aider

« Ne devenez jamais pessimiste. Un pessimiste a plus souvent raison qu'un optimiste, mais l'optimiste s'amuse plus — et aucun des deux ne peut arrêter la marche du monde. » R.Heinlein

Hors ligne

#4 Le 14/10/2010, à 13:50

Postmortem

Re : [✔] Déplacer des fichiers vers le dossier parent avec find

find /home/toto/dossier?/a ! -type d : on recherche tout ce qui n'est pas un dossier dans /home/toto/dossier?/a

<(find /home/toto/dossier?/a ! -type d) : ça envoie la sortie standard de la commande find dans une espèce de fifo ou fichier temporaire (je ne sais pas trop c'est quoi le terme exacte ; voir dans le man bash la partie Process Substitution)

while read fic
do
....
done < fichier
: la boucle est exécutée pour chaque ligne de fichier, la variable fic prenant à chaque fois la valeur d'une ligne. Dans notre cas, fichier est <(find /home/toto/dossier?/a ! -type d)

${fic%/*} : ça enlève, à la fin de la valeur de $fic, la plus courte partie correspondant à /* ; ça enlève donc le dernier / et tout ce qu'il y a derrière (équivaut donc à dirname $fic)

${fic##*/} : ça enlève, au début de la valeur de $fic, la plus longue partie correspondant à */ ; ça enlève donc tout jusqu'au dernier / compris (équivaut donc à basename $fic)


Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »

Hors ligne

#5 Le 14/10/2010, à 14:29

cracolinux

Re : [✔] Déplacer des fichiers vers le dossier parent avec find

Merci pour toutes tes explications, particulièrement pour les deux dernières.

wink


Pixup : postez vos images vite et bien - Wificheck : Aidez nous à vous aider

« Ne devenez jamais pessimiste. Un pessimiste a plus souvent raison qu'un optimiste, mais l'optimiste s'amuse plus — et aucun des deux ne peut arrêter la marche du monde. » R.Heinlein

Hors ligne