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


139

Tôi đã cố gắng tạo liên kết tượng trưng này:

sudo ln -s /usr/share/phpmyadmin /var/www/phpmyadmin

nhưng tôi vô tình gõ:

sudo ln -s /usr/share/php,yad,in /var/www/phpmyadmin

Vì vậy, bây giờ tôi muốn sửa nó nhưng nó nói liên kết tượng trưng đã tồn tại.

Câu trả lời:


165

Bạn có thể sử dụng rmđể xóa symlink.

Thí dụ:

-rw-rw-r-- 1 2014-01-02 09:21 tmo
lrwxrwxrwx 1 2014-01-02 09:21 tmo2 -> tmo

Sau đó ...

 rm tmo2

sẽ loại bỏ các liên kết tượng trưng.


1
sự cho phép bị từ chối. Đây là những gì tôi gõ đầu tiên: sudo ln -s / usr / share / php, yad, in / var / www / phpmyadmin
James

6
quyền bị từ chối: Bạn có biết bạn cần sudo nếu bạn muốn sử dụng nó trong tình huống bạn không sở hữu tệp? Điều đó cũng đúng với 'rm'.
Rinzwind

2
tôi đã làm nó rm / usr / bin / python và loại bỏ con trăn của tôi khỏi

2
@RaheelKhan không có bạn đã làm -không- Bạn đã xóa một SYMLINK. Python dựa vào symlink này mặc dù. Nếu bạn tạo lại python symlink sẽ trở lại.
Rinzwind

1
Tôi thử lệnh này nhưng có vẻ như tệp của tôi đã bị xóa, tôi không muốn xóa tệp của mình
saeed masoomi

24

Bạn có thể thử unlinklệnh là tốt.
unlinklà một lệnh bí danh của rm. do đó rm <symlink>sẽ làm việc nhưunlink <symlink>

Đây là liên kết tham khảo .


9
unlinkkhông có gì để làm với symlink nói riêng. Xem serverfault.com/a/38817/64085
Matthew Đọc

@kushvarma nhưng nó hoạt động. bạn đã thử chưa
hakunami

1
câu trả lời có thể đúng, nhưng sẽ gây nhầm lẫn cho người mới
mit

" unlinklà một lệnh bí danh của rm" [Cần dẫn nguồn]
mwfearnley

12

Giả sử bạn đang cố gắng làm:

sudo ln -s /usr/share/phpmyadmin /var/www/phpmyadmin/

nhưng vô tình đã làm:

sudo ln -s /usr/share/somethingelse /var/www/phpmyadmin/

Để sửa, chỉ cần điều hướng đến thư mục chứa liên kết và hủy liên kết

cd /var/www/phpmyadmin/  
~:# unlink somethingelse

8

Bạn sẽ sử dụng cách sau để xóa liên kết tượng trưng

sudo rm path/to/the/link

Giải trình

  • rmlà lệnh đầu cuối để loại bỏ một tập tin. Xem rm --helpđể có thêm tùy chọn mà nó có thể mất.
  • sudođược sử dụng vì liên kết tượng trưng đã được tạo với sudo. Do đó, tệp thuộc về root và người dùng bình thường của bạn sẽ không thể chỉnh sửa / xóa tệp vì nó có ít 'sức mạnh' hơn root.
  • path/to/the/linksẽ được /usr/share/php,yad,indựa trên bình luận của bạn.

Thêm

Cũng xem bài đăng này và nhận xét của tôi về câu trả lời đầu tiên để truy cập phpmyadmin khi gặp lỗi không tìm thấy sau khi cài đặt.


Nhận xét của bạn không chung chung. Vui lòng luôn sử dụng lệnh chung để hiển thị cách xóa liên kết tượng trưng
kushvarma

có nghĩa là chung, nó phải hợp lệ cho mọi thứ, như lệnh của bạn là dành riêng cho / usr / share / php, yad, in, nhưng nó sẽ giống như rm <symlink>
kushvarma

@kushvarma, cảm ơn. Tôi đã đưa ra câu trả lời chung chung hơn - nó ban đầu cụ thể vì OP dường như có vấn đề khi xóa tệp
chesedo

1

Xin lỗi để đăng bài necro nhưng tôi đã tìm thấy câu hỏi này khi tôi đang tìm kiếm một câu trả lời cho vấn đề này.

Một cảnh báo nhỏ mà tôi thấy là tôi đang cố chạy rmunlinktrên một liên kết tượng trưng và tôi đã gặp một lỗi rằng đó là một thư mục.

$ rm folder_name/
rm: cannot remove ‘folder_name/’: Is a directory
$ unlink folder_name/
unlink: cannot unlink ‘folder_name/’: Not a directory

Để xóa symlink, tôi đã sử dụng unlink folder_namenhưng nó đã thất bại nếu có một dấu vết /chẳng hạn unlink folder_name/vì nó nghĩ rằng đó là một thư mục, không phải là tệp bạn muốn xóa.


0

Tôi đã cố gắng ở đây vì tôi phải gỡ bỏ một dpkg-divertvà gói mới sẽ không cài đặt cho đến khi nó được gỡ bỏ.

Vì vậy, nếu bạn đã làm một cái gì đó như thế này:

sudo dpkg-divert --add --rename --divert /usr/bin/gcc.real /usr/bin/gcc

Bạn cần loại bỏ nó bằng một cái gì đó như thế này:

sudo dpkg-divert --remove /usr/bin/gcc.real
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.