Y a-t-il un moyen de le dire (c. - cp
à --link
-d. Créer des liens durs), mais se replier dans le cas où j'essaye des liens durs inter-appareils? Les liaisons inter-appareils ne sont pas possibles et entraîneraient l' cp
échec.
La raison pour laquelle je demande, c'est parce que je voudrais l'utiliser dans un GNUmakefile
et préférerais une ligne de commande lisible à une ligne alambiquée et longue (ou une fonction, d'ailleurs).
La question est pour GNU coreutils (7.4 et 8.13).
Remarque: en ce moment, la solution de contournement serait quelque chose comme (syntaxe de recette GNU):
cp -fl $^ $@ || cp -f $^ $@
Cela donnera bien sûr des messages d'erreur parasites en cas de liaisons inter-appareils, bien que réussissant lors du deuxième cp
appel. En outre, cela est ensuite développé (le formulaire source semble lisible après tout), il ne sera plus trop lisible.
$$
dans mon cas est bien sûr parce que c'est à l'intérieur d'une macro. Et votre ligne est bien sûr une variation de ce que j'utilise. Mais au moins, je sais de cette façon que cela n'existe pas en option et je dois fournir le mien.ln
et usecp --reflink=auto
(voir ma réponse mise à jour).