symlink ke direktori yang sudah ada

12

Apakah ada cara yang tepat untuk menghubungkan /home/user/app/publicke /home/user/public_html, mengingat fakta bahwa target sudah ada?

Jika saya melakukannya ln -s /home/user/app/public /home/user/public_html, saya akhirnya memiliki /home/user/public_html/public.

Saya kira akan mungkin juga untuk membalikkan tindakan seperti ln -s /home/user/public_html /home/user/app/public, namun saya tidak yakin bagaimana cara menghindarinya /home/user/app/public/public_htmlsebagai hasil akhirnya.

pengguna2094178
sumber

Jawaban:

13

Biar mengerti masalah Anda dengan cara yang benar

Sumber Anda /home/user/public_htmldan saya berasumsi memiliki file di sana. Dan Anda ingin membuat tautan ke direktori ini /home/user/app/public. Dengan cara ini, Anda dapat melakukan sesuatu seperti ls /home/user/app/publicdan melihat file yang ada di /home/user/public_html.

Jika ini benar, maka sumber Anda /home/user/public_htmldan targetnya /home/user/app/public. Perintah yang tepat adalah ini:

ln -s /home/user/public_html /home/user/app/public

Pastikan itu /home/user/app/publicbukan direktori atau file yang valid, masukkan perintah sebelumnya.

Lucio
sumber
3
Ini adalah yang lama, tapi saya pikir pengguna bertanya persis bagaimana melakukan apa yang Anda gambarkan, tetapi, dalam kasus bahwa / home / user / app / publik mungkin sudah ada (yang persis peringatan yang Anda sebutkan di akhir Anda menjawab). Jadi IMHO ini tidak menjawab pertanyaan awal karena pengguna ingin tahu persis bagaimana menangani target yang sudah ada (mis. Cara menimpanya dengan symlink, tanpa harus menghapusnya sebelum membuat symlink).
jotadepicas
Cobalah opsi -T :)
Milkmannetje
2

Jika saya memahami pertanyaan Anda dengan benar, Anda ingin tahu bagaimana menangani target yang sudah ada. Jika itu masalahnya, ada dua skenario yang mungkin.

1) target yang ada adalah file. Jika demikian, Anda dapat memaksa pembuatan symlink dengan "-f"

2) target yang ada adalah direktori. Jika ini masalahnya, maka itu tergantung pada implementasi Anda saat ini dari perintah ln. Ini bisa memiliki "n" argumen yang tersedia, yang menyebabkan symlink ke direktori ditangani dengan baik, bukan duplikasi mereka seperti yang Anda katakan.

Referensi: /unix/207294/create-symlink-overwrite-if-one-exists

jotadepicas
sumber
Saya ingin tahu mengapa downvote tanpa komentar: stackoverflow.com/help/privileges/vote-down
jotadepicas