伝えるためにそこの方法であるcp
には--link
(つまり、ハードリンクを作成する)が、私は、デバイス間のハードリンクをしようとしていた場合にフォールバック?デバイス間のリンクは不可能でありcp
、失敗する可能性があります。
私が質問している理由は、これをaで使用したいためGNUmakefile
、複雑で長文のコマンドライン(または関数について)よりも、読みやすいコマンドラインを使用したいためです。
問題は、GNU coreutils(7.4および8.13)に対するものです。
注:現在、回避策は(GNU makeレシピ構文)のようになります。
cp -fl $^ $@ || cp -f $^ $@
もちろん、これにより、デバイス間のリンクの場合は偽のエラーメッセージが表示されますが、2番目のcp
呼び出しは成功します。また、これは展開されます(結局のところ、ソースフォームは読みやすいように見えます)。
$$
私の場合のdouble はもちろんマクロ内にあるためです。そしてもちろん、あなたのラインは私が使用しているもののバリエーションです。しかし、少なくとも私はこの方法がオプションとして存在しないことを知っているので、自分で用意する必要があります。