Bagaimana cara menyalin tautan simbolis?

43

Saya memiliki tautan simbolis ke file dalam satu direktori. Saya ingin memiliki tautan yang sama di direktori lain. Bagaimana cara menyalin tautan simbolis?

Saya mencoba cp tautan simbolik tetapi ini menyalin file yang ditunjuknya alih-alih tautan simbolik itu sendiri.

Pengguna
sumber
1
Apakah cppada CentOS mendukung -Patau --no-dereferenceberalih?
manatwork
@Manatwork: Terima kasih itu tidak hanya menemukan itu. Jika Anda ingin mempostingnya sebagai jawaban, saya akan menerimanya.
Pengguna

Jawaban:

57

Gunakan cp -P(huruf P) untuk tidak pernah melintasi tautan simbolik dan menyalin tautan simbolik itu sebagai gantinya.

Ini dapat dikombinasikan dengan opsi lain seperti -Rmenyalin hierarki direktori - cp -RLmelintasi semua tautan simbolik ke direktori, cp -RPmenyalin semua tautan simbolik seperti itu. cp -Rmungkin melakukan satu atau yang lain tergantung pada varian unix; GNU cp(seperti yang ditemukan pada CentOS) default ke -P.

Bahkan dengan -P, Anda dapat menyalin target tautan simbolis ke direktori pada baris perintah dengan menambahkan /di akhir: cp -RP foo/ barmenyalin pohon direktori yang foomenunjuk.

GNU cpmemiliki nyaman -apilihan yang menggabungkan -R, -P, -pdan sedikit lebih. Itu membuat salinan yang tepat dari sumber (sejauh mungkin), menjaga hierarki direktori, tautan simbolik, izin, waktu modifikasi dan metadata lainnya.

Gilles 'SANGAT berhenti menjadi jahat'
sumber
3
Hati-hati bahwa setelah disalin / dipindahkan, symlink mungkin menjadi rusak (jika sumbernya adalah symlink ke jalur relatif).
Stéphane Chazelas
3
apakah ada cara untuk mencegah kerusakan symlink jika Anda pindah ke direktori yang lebih tinggi atau lebih rendah?
Andrew Brown
Sebagai catatan: "GNU cp" bukan hal yang sama dengan gcpyang saya gunakan. gcp -Psaat ini rusak, bahkan pada 2019. (menghela napas).
tgm1024
1

Periksa jawaban ini https://superuser.com/a/315757/53590 untuk mendapatkan perhatian khusus dari CentOS tentang masalahnya. Seluruh pertanyaan mungkin membantu Anda, tetapi bagian bawahnya secara khusus adalah CentOS.

Simon Hoare
sumber
1
Perhatikan bahwa orang lain dapat memilih urutan yang berbeda dari pesanan Anda untuk mendaftarkan jawaban. Selain itu, pesanan dapat berubah waktu. Silakan kirim tautan langsung ke jawaban yang dimaksud. (Klik tautan "bagikan" di bawah jawaban itu dan salin tautan langsung yang muncul.)
manatwork