Odpowiedzi:
cp --remove-destination "$(readlink <symlink>)" <symlink>
<symlink>
jest dowiązaniem symbolicznym do ścieżki względnej, działa to tylko wtedy, gdy <symlink>
znajduje się w bieżącym katalogu. Możesz użyć readlink -f
. Lub jeśli używasz zsh
:cp --remove-destination path/to/symlink(:A) path/to/symlink
Mógłbyś:
file=path/to/symlink
{ rm -f -- "$file" && cat > "$file"; } < "$file"
(który kopiuje tylko treść, a nie metadane pliku, takie jak uprawnienia i własność).