OK, ton shell est un dérivé du ash implémenté dans BusyBox.
J'aurais pourtant juré qu'il connait la syntaxe $(...) ; à moins que ce soit parce-que c'est une version pas à jour... (les dernières stables sont 1.34.1 et 1.33.2 de septembre et novembre 2021 et il y a eu beaucoup de corrections de ash depuis la version 1.01...)
J'arrive à stocker les résultats de la commande suivante dans un fichier liste.txt dans lequel la liste des fichiers à copier est correcte mais je ne parviens pas via Rsync à ce qu'il reprenne le contenu de cette liste qui pourrait être une solution.
Une solution un peu crade serait de boucler sur les lignes du fichier
whileIFS=read -r line <&3;do
rsync -aR "$line""/share/data2_export/7964/"done3< "liste.txt"
Entre temps j'ai essayé avec print0 et xargs -0 sans succès, je dois mal m'y prendre ou alors la limitation du bash fait que ca ne marche pas , j'ai essayé la commande suivante et d'autres variantes : /opt/bin/find . -maxdepth 1 -type d -name "22_11_*" -exec /opt/bin/find {} -name "7964*.vce" -print0 \; | xargs -0 rsync -aR "/share/data2_export/7964/"
Le souci ici n'est pas au niveau du shell :) xargs balance les lignes en argument de la commande ...donc les ajoute à la fin, alors que, contrairement à ls et autres commandes simples auxquelles cela correspond, rsync les veut avant la fin (le dernier argument étant la destination.) Mais xargs a prévu le coup :
C'est toi qui choisi la chaine de marquage (j'ai mis ICI) de sorte que ce ne soit pas en conflit avec le reste de la commande, et tu indiques à xargs par l'option -I que c'est à l'emplacement de cette chaîne qu'il faut poser les arguments et non à la fin. ;)
"It is seldom that liberty of any kind is lost all at once." ― David Hume
[^] # Re: pistes
Posté par Gil Cot ✔ (site web personnel, Mastodon) . En réponse au message Problème sur enchainement de commandes find et rsync. Évalué à 2. Dernière modification le 11 novembre 2022 à 19:07.
Arf, on (en tout cas moi) a(i) pensé que tu utilisais
bash, mais c'est visiblement un autre shell limité au vu de ce que tu nous montres.OK, ton shell est un dérivé du
ashimplémenté dans BusyBox.J'aurais pourtant juré qu'il connait la syntaxe
$(...); à moins que ce soit parce-que c'est une version pas à jour... (les dernières stables sont 1.34.1 et 1.33.2 de septembre et novembre 2021 et il y a eu beaucoup de corrections deashdepuis la version 1.01...)Une solution un peu crade serait de boucler sur les lignes du fichier
Le souci ici n'est pas au niveau du shell :)
xargsbalance les lignes en argument de la commande ...donc les ajoute à la fin, alors que, contrairement àlset autres commandes simples auxquelles cela correspond,rsyncles veut avant la fin (le dernier argument étant la destination.) Maisxargsa prévu le coup :C'est toi qui choisi la chaine de marquage (j'ai mis
ICI) de sorte que ce ne soit pas en conflit avec le reste de la commande, et tu indiques àxargspar l'option-Ique c'est à l'emplacement de cette chaîne qu'il faut poser les arguments et non à la fin. ;)"It is seldom that liberty of any kind is lost all at once." ― David Hume