Déplacer des dossiers présents dans une liste (fichier.txt) [Résolu/Fermé]

Signaler
Messages postés
570
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
4 août 2020
-
Messages postés
570
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
4 août 2020
-
Bonjour,

J'ai un fichier qui contient des noms de dossier sous la forme :
1
2
6
256
3548
596
24

Je souhaiterais lister le contenu de ces répertoires présents dans ce fichier et si des fichiers ou sous dossiers sont trouvés pour chacun de ces répertoires, je voudrais déplacer ces répertoires et tout leurs contenus (fichiers et sous dossiers) dans un autre dossier.

Peut être avec les commande
ls, find,xarg
mais je ne vois pas la syntaxe a utiliser

Une idée?
Merci
...


4 réponses

Messages postés
35326
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
4 août 2020
5 318
Salut,

while read ligne;do find "${ligne}" -maxdepth 0 -type d ! -empty -exec echo "mv -v {} /rep/dest" \;;done < fichier.txt


En supposant que les répertoires listés sont bien dans le même répertoire où se trouve le fichier (fichier.txt) et d'où est lancée la commande ;-\

Si c'est concluant, enlève la commande
echo
et les quotes doubles qui l'entourent.
Messages postés
570
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
4 août 2020
16
Super sympa zipe31,

C'est ok.

Merci
Messages postés
570
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
4 août 2020
16
Salut zipe31,

Juste un complément et si je veux faire la meme chose avec des fichiers qui sont dans ces repertoires.

Je m'explique

Mon fichier contient une partie du nom des fichiers donc :
220_542_15698
220_542_189
220_542_2569
220_28_3
220_28_15
220_54_653
220_54_158977
etc..


Je veux déplacer tous les fichiers dont le nom contient chaque ligne de ce fichier et qui sont dans différents sous répertoires du répertoire principal d 'ou je lance ma commande vers les sous répertoires places sur un autre disque et si le sous répertoire n'existe pas le créait.


Merci
Messages postés
35326
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
4 août 2020
5 318 >
Messages postés
570
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
4 août 2020

Ben faut juste préciser le répertoire (
find /chemin
), remplacer le type de fichier (
type -d
par
-type f
), rajouter une recherche sur le nom (
-name "${ligne}*"
et remplacer
-exec …
par
-delete
et ça devrait le faire ;-))
Messages postés
570
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
4 août 2020
16
Merci.

J'ai fait ça mais apparemment ce la ne fonctionne pas :

while read ligne;do find .  -maxdepth 0 -type f -name "*${ligne}*" ! -empty -exec echo "mv -v {} /rep/destiantion/" \;;done < file.txt 


Pour info le nom des fichiers sont :

t21_0_220_542_15698_2.jpg
Messages postés
35326
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
4 août 2020
5 318
Oups ;-(
-maxdepth 0
est en trop du coup, de même que
! -empty
qui ne concerne que les répertoires.
Messages postés
570
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
4 août 2020
16
Merci mais j'ai encore un petit souci.

Je suis dans le dossier 230 et je veux déplacer tous les fichiers de la liste qui sont dans des sous repertoires du dossier 230 mais cela semble ne pas fonctionner avec la commande :

while read ligne;do find .  -type f -name "*${ligne}*" -exec echo "mv -v {} /ref/destination/" \;;done < file.txt

Messages postés
35326
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
4 août 2020
5 318
Sans voir les messages d'erreurs ou du moins la sortie de la commande, difficile de se faire une idée ;-((

En réduisant la liste des fichiers et en ne ciblant qu'un répertoire, que renvoie :

while read ligne;do find REP_UNIQUE  -type f -name "*${ligne}*" -exec echo "mv -v {} /ref/destination/" \;;done < file.txt
Messages postés
570
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
4 août 2020
16 >
Messages postés
35326
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
4 août 2020

Oui c'est Ok.

Oups j'ai besoin de congés! C'est moi qui lançait la commande du mauvais repertoire

Merci encore.