Làm thế nào để xóa hoặc thay thế một liên kết tượng trưng đã được tạo?


53

Tôi đang làm việc trên dự án của mình bằng cách sử dụng trình giả lập mạng2. Tôi đã cài đặt nó và mọi thứ đều ổn. Tôi đã cố gắng tạo một liên kết tượng trưng giữa cài đặt này và /usr/binvì vậy tôi có thể gọi phần mềm bằng cách chạy nstừ dòng lệnh. Cụ thể, tôi đã chạy:

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

tạo ra đầu ra sau:

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


Làm cách nào để xóa symlink đã tạo hoặc tôi có thể thay thế nó bằng bất kỳ lệnh nào khác không?


Tôi đã cố gắng để làm sudo ln -s destination source, và tất nhiên nó đã bị lỗi. Cảm ơn câu trả lời.
aviggiano

Câu trả lời:


35
sudo rm -r /usr/bin/ns

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

1
ở trên không thành công nếu ns là một thư mục - trong trường hợp đó sử dụng rm -rf (công tắc lực đệ quy) - trong trường hợp đó bạn cũng có thể sử dụng các công tắc -sf cho ln.
Finley

@finley Vâng, bạn nói đúng. Incase ns là một thư mục, nó không thể bị xóa. Bây giờ với tôi, chúng ta có thể tạo một liên kết tượng trưng đến một thư mục.?
Vinay

1
vâng, chúng tôi có thể tạo một liên kết tượng trưng đến một thư mục. Nếu đó là một thư mục, bạn có thể làm: sudo rm -r / usr / bin / ns
Pawełkowy

@Pawel Tôi đã tạo một liên kết tượng trưng đến thư mục thành công. Tôi thậm chí có thể loại bỏ như bạn đã nói ở trên. Nhưng, khi tôi gõ Fold [symlink được tạo cho một thư mục] tên trong terminal, nó sẽ báo lỗi. Những gì tôi thực sự nghĩ là bằng cách tạo một liên kết tượng trưng đến một thư mục và chỉ cần gõ thiết bị đầu cuối tên liên kết sẽ mở nó trong nautilus. Tôi không chắc liệu nó có thể hay không ..?
Vinay

1
@Vinaychalluru nếu bạn muốn mở thư mục đó, hãy thử gõ: cd Fold - nó sẽ mở trong một thiết bị đầu cuối. Nếu bạn muốn mở nó trong nautilus, hãy gõ: nautilus gấp
Pawełkowy

63

lnđã -fchuyển đổi 'buộc' một liên kết tượng được tạo cho dù nó có tồn tại hay không.

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

Đây phải là câu trả lời được chấp nhận.
Rony Varghese

28

Tôi đã cố gắng ln -sftrong khi thay thế nhưng nó không làm việc cho tôi, nhưng làm ln -sfn directory link_name như rootđã làm việc.


Không có -ntôi đã nhận được một vấn đề vòng lặp vô hạn. Cảm ơn!
Christopher Markieta

3

Để thêm vào tất cả các câu trả lời ở trên, một liên kết tượng trưng có thể được coi là một tệp thông thường trong nhiều trường hợp (liên kết, không phải mục tiêu).

rmtrên một liên kết tượng trưng sẽ loại bỏ nó. Nếu liên kết được sở hữu bởi root, bạn sẽ cần sudo.

Bạn có thể rm /usr/bin/nshoặc không sudo rm /usr/bin/nsnên quên quyền sở hữu.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.