Bagaimana cara mengganti tautan simbolis dengan salinan file yang ditautkan?

15

Memiliki symlink (tunggal, tanpa pemrosesan sistem file batch), baris perintah apa yang digunakan untuk menggantinya dengan salinan file yang dilink?

Ivan
sumber

Jawaban:

16
cp --remove-destination "$(readlink <symlink>)" <symlink>
Ignacio Vazquez-Abrams
sumber
1
error "-bash: kesalahan sintaks dekat token tak terduga` newline '"ketika dieksekusi dari lingkungan debian.
Lin Song Yang
Jika <symlink>symlink ke jalur relatif, itu hanya berfungsi jika <symlink>ada di direktori saat ini. Anda mungkin ingin menggunakan readlink -f. Atau jika menggunakan zsh:cp --remove-destination path/to/symlink(:A) path/to/symlink
Stéphane Chazelas
0

Anda bisa melakukannya:

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

(yang hanya menyalin konten, bukan metadata file seperti izin dan kepemilikan).

Stéphane Chazelas
sumber