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 03/05/2012, à 17:42

Jean-paul 3

Deplacer en fonction d'une liste pré-établie

Bonjour,

je me retrouve avec un dossier contenant plusieurs centaines (milliers) d'images.

Comment déplacer (en fait copier) par une commande ou un script bash une partie des images dont je possède le nom dans un fichier texte de ce dossier vers un autre dossier cible.
En fait comment extraire cette liste de nom afin de la renvoyer vers une commande cp.

D'avance merci

Hors ligne

#2 Le 03/05/2012, à 18:05

Postmortem

Re : Deplacer en fonction d'une liste pré-établie

Salut,
En bash, tu pourrais faire ainsi :

while read
do
echo "$REPLY" "/destination"
# ou s'il n'y a pas le chemin du fichier dans la liste : echo "/chemin/$REPLY" "/destination"
done < liste_fichiers.txt

Si l'affichage des noms te semble correct, il te suffira de remplacer echo par mv (ou cp)

Dernière modification par Postmortem (Le 03/05/2012, à 18:06)


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

Hors ligne

#3 Le 04/05/2012, à 07:27

Jean-paul 3

Re : Deplacer en fonction d'une liste pré-établie

merci pour l'info, Postmortem
je suis en déplacement et je n'ai malheureusement pas de machine sous le coude sad
je teste ce WE et reviens vers le forum.

wink

Hors ligne

#4 Le 04/05/2012, à 08:40

credenhill

Re : Deplacer en fonction d'une liste pré-établie

hello
si il n'y a pas d'espaces dans les noms

cp $(cat liste) /destination

Hors ligne

#5 Le 09/05/2012, à 22:56

Jean-paul 3

Re : Deplacer en fonction d'une liste pré-établie

yep,
les 2 fonctionnent parfaitement, merci à vous !

tongue

Hors ligne

#6 Le 11/05/2012, à 04:52

nesthib

Re : Deplacer en fonction d'une liste pré-établie

À souligner que la solution de Postmortem est la meilleure, en particulier pour de nombreux fichiers d'une part car cela évite les problèmes de noms de fichiers spéciaux (avec espaces ou caractères spéciaux), d'autre part car la quantité d'arguments est limitée et pourrait être atteinte avec des milliers de fichiers par la méthode de credenhill.

Pour aller plus loin, je ne sais pas si ta liste a été créée à partir d'une recherche par mot clé, mais si c'est le cas tu peux utiliser une commande du type :

find … -exec mv "{}" /repertoire/cible \;

ou remplacer dans la boucle de Postmortem le « < liste_fichiers.txt » par un

< <(find …)

ps. je déplace car la section n'est pas adaptée, Trucs et Astuces et fait pour apporter des trucs et astuces, pas pour poser des questions…


GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne

#7 Le 11/05/2012, à 08:57

Watael

Re : Deplacer en fonction d'une liste pré-établie

salut,

s'il ne s'agit que de copier : rsync avec l'option --files-from


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne