Apakah ada cara untuk memberitahu cp
ke --link
(yaitu membuat link keras), tetapi jatuh kembali dalam kasus di mana saya mencoba hardlinks antar-perangkat? Tautan antar-perangkat tidak memungkinkan dan akan menyebabkan cp
kegagalan.
Alasan saya bertanya adalah karena saya ingin menggunakan ini dalam GNUmakefile
dan lebih suka baris perintah yang dapat dibaca daripada yang berbelit-belit dan panjang (atau fungsi, dalam hal ini).
Pertanyaannya adalah untuk GNU coreutils (7.4 dan 8.13).
Catatan: saat ini solusinya akan seperti (sintaks resep resep GNU):
cp -fl $^ $@ || cp -f $^ $@
Ini tentu saja akan memberikan pesan kesalahan palsu jika terjadi tautan antar-perangkat, meskipun kemudian berhasil pada cp
panggilan kedua . Juga, maka ini akan diperluas (bentuk sumber terlihat dapat dibaca setelah semua) itu tidak akan terlalu dibaca lagi.
$$
dalam kasus saya tentu saja karena ini ada di dalam makro. Dan baris Anda tentu saja adalah variasi dari apa yang saya gunakan. Tapi setidaknya saya tahu dengan cara ini bahwa itu tidak ada sebagai pilihan dan saya harus menyediakan sendiri.ln
dan menggunakancp --reflink=auto
(lihat jawaban saya yang diperbarui).