วิธีการลบหรือแทนที่ลิงค์สัญลักษณ์ที่สร้างขึ้นแล้ว?


53

ฉันกำลังทำงานในโครงการของฉันโดยใช้เครือข่าย simulator2 ฉันติดตั้งแล้วและทุกอย่างเรียบร้อยดี ฉันพยายามสร้างลิงก์สัญลักษณ์ระหว่างการติดตั้งนี้และ/usr/binดังนั้นฉันจึงสามารถเรียกใช้ซอฟต์แวร์โดยเรียกใช้nsจากบรรทัดคำสั่ง คือฉันวิ่ง:

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

ซึ่งสร้างผลลัพธ์ต่อไปนี้:

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


ฉันจะลบ symlink ที่สร้างไว้แล้วหรือฉันจะแทนที่ด้วยคำสั่งอื่นได้อย่างไร


ฉันพยายามที่จะทำsudo ln -s destination sourceและแน่นอนมันบั๊ก ขอบคุณสำหรับคำตอบ.
aviggiano

คำตอบ:


35
sudo rm -r /usr/bin/ns

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

1
ด้านบนล้มเหลวหาก ns เป็นโฟลเดอร์ - ซึ่งในกรณีนี้ให้ใช้ rm -rf (สวิตช์บังคับแบบเรียกซ้ำ) - ในกรณีนี้คุณอาจใช้สวิตช์ -sf แทน ln
finley

@finley ใช่คุณพูดถูก กรณีnsเป็นโฟลเดอร์มันไม่สามารถลบได้ ตอนนี้ฉันยังคงมีข้อสงสัยว่าเราสามารถสร้างลิงก์สัญลักษณ์ไปยังโฟลเดอร์ได้หรือไม่?
Vinay

1
ใช่เราสามารถสร้างลิงค์สัญลักษณ์ไปยังโฟลเดอร์ หากเป็นโฟลเดอร์คุณสามารถทำได้: sudo rm -r / usr / bin / ns
Pawełkowy

@ Pawel ฉันสร้าง symlink ไปยังโฟลเดอร์ได้สำเร็จ ฉันสามารถลบได้อย่างที่คุณได้กล่าวไว้ข้างต้น แต่เมื่อฉันพิมพ์fold [สร้าง symlink สำหรับโฟลเดอร์] ชื่อในเทอร์มินัลจะทำให้เกิดข้อผิดพลาด สิ่งที่ฉันคิดจริง ๆ ก็คือการสร้าง symlink ไปยังโฟลเดอร์และเพียงแค่พิมพ์ชื่อเทอร์มินัลการเชื่อมโยงจะเปิดใน nautilus ฉันไม่แน่ใจว่ามันเป็นไปได้หรือไม่ .. ?
Vinay

1
@Vayaychalluru หากคุณต้องการเปิดโฟลเดอร์นั้นลองพิมพ์: cd fold - มันจะเปิดขึ้นในเครื่อง ถ้าคุณต้องการที่จะเปิดมันในหอยโข่งพิมพ์: nautilus fold
Pawełkowy

63

lnมี-fสวิตช์ที่ 'บังคับ' symlink ที่จะสร้างขึ้นไม่ว่าจะมีอยู่หรือไม่ก็ตาม

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

นี่ควรเป็นคำตอบที่ยอมรับได้
Rony Varghese

28

ฉันพยายามln -sfขณะที่การแทนที่ แต่มันไม่ได้ทำงานสำหรับฉัน แต่ทำln -sfn directory link_name เท่าที่rootทำงาน


หาก-nฉันไม่ได้รับปัญหาลูปไม่สิ้นสุด ขอบคุณ!
Christopher Markieta

3

หากต้องการเพิ่มคำตอบทั้งหมดข้างต้นลิงก์สัญลักษณ์จะถือว่าเป็นไฟล์ปกติในหลายกรณี (ลิงก์ไม่ใช่เป้าหมาย)

rmบนลิงก์สัญลักษณ์จะลบออก หากรูทเป็นเจ้าของโดยรูทคุณจะต้อง sudo

คุณควรจะสามารถrm /usr/bin/nsหรือsudo rm /usr/bin/nsไม่ลืมความเป็นเจ้าของ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.