URL: https://linuxfr.org/forums/programmation-shell/posts/find-parallel-et-commandes-imbriqu%C3%A9es Title: find, parallel et commandes imbriquées Authors: maxix Date: 2011年04月02日T09:40:35+02:00 Tags: Score: 1 Bonjour, je butte sur un problème qui semble bête mais que je n'arrive pas à contourner : pour lutter contre la corruption lente de mes vidéos & co (certaines deviennent violettes par moment), j'ai décidé de créer des fichiers [[par2]] pour chacun des fichiers à protéger. En bref, je balaye récursivement un répertoire avec find, j'utilise parallel pour accélérer le tout et j'appelle ainsi par2create. Le problème, c'est que j'aimerais que les fichiers .par2 soient cachés, et j'aimerais le faire sans deuxième find. Donc je pense à ca : ```sh find `pwd` -type f | parallel --progress -j 3 par2create -qq -r5 -n1 -- '`dirname '{}'`/.'{/}'.par2' '{}' #devrait exécuter : par2create -qq -r5 -n1 -- /chemin/absolu/.video.avi.par2 /chemin/absolu/video.avi #éxecute en fait : par2create -qq -r5 -n1 -- ./.video.avi.par2 /chemin/absolu/video.avi ``` Malheur! On aurait pu espérer que `dirname '{}'` retourne le chemin absolu de `{}` mais ce gros malin, étant évalué au moment où je tape sur entrée, ne renvoie que "point" . Badaboum, tous les fichiers par2 se retrouvent dans le répertoire d'appel. J'ai plein de solutions bancales et pleines de double passes, mais rien de sympa et léger. Passons sur le fait que parallel permette de manipuler l'argument `{}`, l'argument sans extension `{.}`, l'argument sans chemin `{/}` (basename) mais pas le chemin de l'argument (dirname)! Une bonne âme saurait elle imbriquer une commande évaluée à posteriori? Merci d'avance!

AltStyle によって変換されたページ (->オリジナル) /