Wie ersetze ich einen symbolischen Link durch eine Kopie der Datei, auf die er verweist?

Wie ersetze ich einen symbolischen Link durch eine Kopie der Datei, auf die er verweist?

Ich habe einen (einzelnen, keine Stapelverarbeitung im Dateisystem erforderlich) symbolischen Link. Welche Befehlszeile kann ich verwenden, um ihn durch eine Kopie der Datei zu ersetzen, auf die er verweist?

Antwort1

cp --remove-destination "$(readlink <symlink>)" <symlink>

Antwort2

Du könntest es tun:

file=path/to/symlink
{ rm -f -- "$file" && cat > "$file"; } < "$file"

(dadurch wird nur der Inhalt kopiert, nicht die Metadaten der Datei wie Berechtigungen und Eigentümer).

verwandte Informationen