Tentar escrever em um link simbólico morto é equivalente a tentar escrever em um caminho que não existe. Não há como "ajustar" o redirecionamento de saída para criar o caminho (incluindo diretórios intermediários) em bash
, e não há opções de shell em bash
que tornem isso automático.
Se o caminho intermediário existir, mas o ponto final do link não, ele será criado pelo redirecionamento.
Você pode fazer algo como
if [ -h file ] && [ ! -f file ]; then
rm file
fi
para testar se "arquivo" é um link simbólico ( -h
) e se ele se refere a um arquivo regular que existe ( -f
). Se for um link simbólico, mas não se referir a um arquivo, exclua-o.