Làm thế nào để loại bỏ một liên kết tượng trưng đến một thư mục?


100

Tôi đã tạo một liên kết tượng trưng với thông tin sau:

ln -s ../test5

Tôi muốn xóa nó ngay bây giờ nhưng rm của tôi không thành công:

$ rm -Rf test5/
rm: cannot remove `test5/': Not a directory
$ rm test5/
rm: cannot remove directory `test5/': Is a directory
$ rmdir test5/
rmdir: test5/: Not a directory
$rm -r test5/
rm: cannot remove `test5/': Not a directory

$ls -l
 0 lrwxrwxrwx  1 peter peter    8 Jul 20 15:30 test5 -> ../test5/

Làm thế nào tôi có thể loại bỏ liên kết tượng trưng của tôi? (Ubuntu 8.10, bash)


4
rm -r link/
MIPO

Câu trả lời:


121

Xóa dấu gạch chéo:

Với lời nhắc:

$ rm test5

Không cần nhắc:

$ rm -f test5


Nó nói permission denied.
1,21 gigawatt

1
Không dấu gạch chéo. Như vậy test5/là không chính xác.
pylover

20

Hãy thử rm test5
(không có dấu gạch chéo đào tạo).

Dấu gạch chéo chỉ ra rằng 'test5' là một direactory trong khi đó thực sự là một tệp liên kết đến một thư mục.


14

Bạn có thể chạy loại bỏ dấu gạch chéo:

$ rm test5

Điều này sẽ loại bỏ các tập tin (tức là symlink).

Ngoài ra, bạn có thể sử dụng hủy liên kết:

$ unlink test5

Một lần nữa, bạn phải bỏ qua dấu gạch chéo vì bạn đang cố gắng hủy liên kết symlink không phải thư mục.


0

Đôi khi, nếu bạn sử dụng tự động hoàn thành để đặt tên cho liên kết mà bạn muốn xóa, bạn có thể không thấy dấu gạch chéo nhưng đó là 'một nửa ở đó' và dấu gạch chéo vô hình đó vẫn gây ra lỗi xóa khi cố gắng xóa liên kết đó.

Vì vậy, trong trường hợp đó, hãy gõ ký tự theo ký tự, liên kết sẽ bị xóa là "test5", vd. rm test5.


1
Không bao giờ nghe nói về dấu gạch chéo vô hình. Cái gì làm cái vỏ này?
Kamil Maciorowski

Tôi nghĩ rằng nó có thể là một tham chiếu đến nhân vật bị ẩn bởi linewrap + con trỏ?
bertieb

0

Vấn đề trong OP là dấu vết /, do đó, test5/ném một lỗi nhưng test5hoạt động.

Tôi thích sử dụng unlinkhơn rmlà vì ý định của tôi rõ ràng hơn và không có cơ hội xóa nhầm thư mục thực thay vì liên kết. Đảm bảo rằng không có dấu /sau tên thư mục, ví dụ:

unlink test5

-1

Tôi cảm thấy ngớ ngẩn khi hỏi, nhưng bạn đã thử rm -rchưa? Vì nó là một liên kết tượng trưng nên nó không nên xóa mục tiêu.

Chỉnh sửa: Chỉ cần thử nó, nó chính xác

Chỉnh sửa 2: rmdir nói trong dòng đầu tiên của trang man, nó xóa các thư mục trống. Tôi nghĩ rằng vì đó là một liên kết nên nó đã kiểm tra bit thư mục trên các thuộc tính tệp của nó, nhưng vì rmdir không nghi ngờ rằng đó là trường hợp nó phát sinh lỗi. Chỉ cần sử dụng rm -r


2
Điều này sẽ yêu cầu tôi xóa các tệp trong thư mục, đó không phải là điều tôi muốn, tôi chỉ muốn xóa liên kết
Peter Smit

Câu hỏi là vì tương tác được xác định trong .profile của tôi. Đã thêm phản hồi cho rm -r. Nó vẫn không hoạt động.
Peter Smit

Bạn đã để lại dấu vết '/' đó là lý do tại sao nó thất bại
bboy
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.