シンボリックリンクをリンクされたファイルのコピーに置き換えるには?

シンボリックリンクをリンクされたファイルのコピーに置き換えるには?

(単一のバッチファイルシステム処理を必要としない)シンボリックリンクがある場合は、リンクされたファイルのコピーに置き換えるためにどのコマンドラインを使用する必要がありますか?

答え1

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

答え2

次のことができます。

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

(権限、所有権などファイルのメタデータはコピーされず、コンテンツのみコピーされます。)

関連情報