Czy istnieje sposób, aby powiedzieć cp
do --link
(tj tworzyć dowiązania twarde), ale spadek z powrotem w przypadku gdy ja próbuje hardlinki między urządzeniami? Łącza między urządzeniami nie są możliwe i mogą spowodować cp
awarię.
Powodem, dla którego pytam, jest to, że chciałbym użyć tego w a GNUmakefile
i wolałbym czytelny wiersz poleceń niż jakiś skomplikowany i długi (lub funkcję, jeśli o to chodzi).
Pytanie dotyczy jąder GNU (7.4 i 8.13).
Uwaga: w tej chwili obejście może wyglądać następująco (składnia receptury GNU):
cp -fl $^ $@ || cp -f $^ $@
Będzie to oczywiście dawać fałszywe komunikaty o błędach w przypadku łączy między urządzeniami, chociaż wówczas powiodą się przy drugim cp
wywołaniu. Również wtedy to się rozszerza (mimo wszystko forma źródłowa wygląda na czytelną), nie będzie już zbyt czytelne.
$$
w moim przypadku jest oczywiście, ponieważ jest w makrze. Twoja linia jest oczywiście odmianą tego, czego używam. Ale przynajmniej wiem w ten sposób, że nie istnieje jako opcja i muszę podać własne.ln
i używaćcp --reflink=auto
(zobacz moją zaktualizowaną odpowiedź).