Existe uma maneira de dizer cp
a --link
(ou seja, criar links de disco rígido), mas cair de volta no caso em que eu estou tentando hardlinks inter-dispositivos? Os links entre dispositivos não são possíveis e podem causar cp
falhas.
A razão pela qual estou perguntando é porque gostaria de usar isso em um GNUmakefile
e preferiria uma linha de comando legível em vez de uma linha complicada e longa (ou uma função, nesse caso).
A questão é para os coreutils GNU (7.4 e 8.13).
Nota: no momento, a solução alternativa seria algo como (GNU make sintaxe da receita):
cp -fl $^ $@ || cp -f $^ $@
Obviamente, isso fornecerá mensagens de erro falsas no caso de links entre dispositivos, embora seja bem-sucedido na segunda cp
chamada. Além disso, ele é expandido (o formulário de origem parece legível, afinal) e não será mais legível.
$$
no meu caso é claro, porque isso está dentro de uma macro. E sua linha de curso é uma variação do que estou usando. Mas pelo menos sei dessa maneira que não existe como uma opção e preciso fornecer o meu.ln
e usocp --reflink=auto
(consulte minha resposta atualizada).