Bagaimana cara menghapus atau mengganti tautan simbolis yang sudah dibuat?

53

Saya sedang mengerjakan proyek saya menggunakan jaringan simulator2. Saya menginstalnya dan semuanya baik-baik saja. Saya mencoba membuat tautan simbolis antara instalasi ini dan /usr/bin, jadi saya bisa memanggil perangkat lunak dengan menjalankan nsdari baris perintah. Yaitu, saya berlari:

sudo ln -s /home/vinaychalluru/ns-allinone-2.34/ns-2.34/ns /usr/bin/ns

yang menghasilkan output berikut:

ln: creating symbolic link '/usr/bin/ns': File exists


Bagaimana saya bisa menghapus symlink yang sudah dibuat atau saya bisa menggantinya dengan perintah lain?

Vinay
sumber
Saya coba lakukan sudo ln -s destination source, dan tentu saja disadap. Terima kasih atas jawabannya.
aviggiano

Jawaban:

35
sudo rm -r /usr/bin/ns

sudo ln -s /home/vinaychalluru/ns-allinone-2.34/ns-2.34/ns /usr/bin/ns
Pawełkowy
sumber
1
di atas gagal jika ns adalah folder - dalam hal ini gunakan rm -rf (switch gaya rekursif) - dalam hal ini Anda mungkin juga menggunakan switch -sf untuk ln.
finley
@finley Ya, Anda benar. Memetikan ns adalah folder, tidak dapat dihapus. Sekarang menjadi ambiguo bagi saya bahwa, dapatkah kita membuat tautan simbolis ke folder.?
Vinay
1
ya, kami dapat membuat tautan simbolis ke folder. Jika itu folder, Anda dapat melakukannya: sudo rm -r / usr / bin / ns
Pawełkowy
@Pawel Saya berhasil membuat symlink ke folder. Saya bahkan dapat menghapus seperti yang Anda katakan di atas. Tapi, ketika saya mengetik nama lipat [buat symlink untuk folder] di terminal itu memberikan kesalahan. Apa yang sebenarnya saya pikirkan adalah dengan membuat symlink ke folder dan hanya mengetik terminal nama tautan akan membukanya di nautilus. Saya tidak yakin apakah itu mungkin atau tidak ..?
Vinay
1
@Vinaychalluru jika Anda ingin membuka folder itu, coba ketikkan: cd fold - itu akan terbuka di terminal. Jika Anda ingin membukanya di nautilus, ketik: nautilus fold
Pawełkowy
63

lntelah -fberalih yang 'memaksa' symlink untuk dibuat apakah itu ada atau tidak.

sudo ln -sf /home/vinaychalluru/ns-allinone-2.34/ns-2.34/ns /usr/bin/ns
finley
sumber
Ini harus menjadi jawaban yang diterima.
Rony Varghese
28

Saya mencoba ln -sfsambil mengganti tetapi itu tidak berhasil bagi saya, tetapi melakukan ln -sfn directory link_name seperti yang rootberhasil.

pengguna712092
sumber
Tanpa -nsaya mendapatkan masalah loop tak terbatas. Terima kasih!
Christopher Markieta
3

Untuk menambahkan semua jawaban di atas, tautan simbolik dapat diperlakukan sebagai file biasa dalam banyak kasus (tautan, bukan target).

rmpada tautan simbolik akan menghapusnya. Jika tautan tersebut dimiliki oleh root, Anda perlu sudo.

Anda harus dapat rm /usr/bin/nsatau lebih tepatnya sudo rm /usr/bin/nsjangan lupa kepemilikan.

Dmitriy Likhten
sumber