Jak usunąć link symboliczny

139

Próbowałem utworzyć ten symboliczny link:

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

ale przypadkowo wpisałem:

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

Więc teraz chcę to poprawić, ale mówi, że dowiązanie symboliczne już istnieje.

James
źródło

Odpowiedzi:

165

Możesz użyć rmdo usunięcia dowiązania symbolicznego.

Przykład:

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

Następnie ...

 rm tmo2

usunie dowiązanie symboliczne.

Rinzwind
źródło
1
odmowa dostępu. Oto, co wpisałem jako pierwsze: sudo ln -s / usr / share / php, yad, in / var / www / phpmyadmin
James
6
odmowa dostępu: Czy wiesz, że potrzebujesz sudo, jeśli chcesz go użyć w sytuacji, gdy nie jesteś właścicielem pliku? To samo dotyczy „rm”.
Rinzwind
2
Zrobiłem to rm / usr / bin / python i usunąłem moje python z ubuntu: S
2
@ RaheelKhan nie zrobiłeś -nie- Usunąłeś SYMLINK. Python polega jednak na tym dowiązaniu symbolicznym. Jeśli odtworzysz to python z linkami symbolicznymi wróci.
Rinzwind
1
Próbuję tego polecenia, ale wygląda na to, że mój plik został usunięty, nie chcę go usuwać
saeed masoomi,
24

Możesz także spróbować wykonać unlinkpolecenie.
unlinkjest aliasem polecenia rm. dlatego rm <symlink>będzie działać tak samo jakunlink <symlink>

Oto link referencyjny .

hakunami
źródło
9
unlinknie ma nic wspólnego w szczególności z dowiązaniami symbolicznymi. Zobacz serverfault.com/a/38817/64085
Mateusz
@kushvarma, ale działa. próbowałeś tego?
hakunami,
1
odpowiedź może być poprawna, ale dezorientuje początkujących
mit
unlinkto alias polecenia rm” [Potrzebne cytowanie]
mwfearnley
12

Załóżmy, że próbujesz:

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

ale przypadkowo:

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

Aby to poprawić, po prostu przejdź do folderu, w którym znajduje się link, i odłącz połączenie

cd /var/www/phpmyadmin/  
~:# unlink somethingelse
Metale Marata
źródło
8

Użyjesz następujących elementów, aby usunąć symboliczny link

sudo rm path/to/the/link

Wyjaśnienie

  • rmto polecenie terminalu służące do usuwania pliku. Zobacz rm --helpwięcej opcji, które może podjąć.
  • sudojest używany, ponieważ dowiązanie symboliczne zostało utworzone za pomocą sudo. Plik należy zatem do roota, a zwykły użytkownik nie będzie mógł go edytować / usunąć, ponieważ ma mniejszą moc niż root.
  • path/to/the/linkbędzie /usr/share/php,yad,inoparty na twoim komentarzu.

Dodatkowy

Zobacz także ten post i mój komentarz do pierwszej odpowiedzi, aby uzyskać dostęp do phpmyadmin po otrzymaniu błędu „nie znaleziono” po instalacji.

chesedo
źródło
Twój komentarz nie jest ogólny. Zawsze używaj komendy ogólnej, aby pokazać, jak usunąć link symboliczny
kushvarma
oznacza, że ​​powinno być poprawne dla wszystkich, tak jak twoje polecenie jest specyficzne dla / usr / share / php, yad, in, ale powinno być jak rm <symlink>
kushvarma
@kushvarma, dzięki.
Uczyniłem
1

Przepraszam, że opublikowałem necro, ale znalazłem to pytanie, gdy szukałem odpowiedzi na ten problem.

Małe zastrzeżenie, które znalazłem, polegało na tym, że próbowałem uruchomić rmi unlinkna dowiązaniu symbolicznym i otrzymywałem błąd, że był to katalog.

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

Aby usunąć dowiązanie symboliczne, użyłem unlink folder_namego, ale zawiodło, jeśli /na przykład pojawił się trailing, unlink folder_name/ponieważ uważa, że ​​jest to katalog, a nie plik, który chcesz usunąć.

Losowy bohater
źródło
0

Publikowałem tutaj, ponieważ musiałem usunąć dpkg-diverta nowy pakiet wygrał; t instaluj, dopóki nie zostanie usunięty.

Więc jeśli zrobiłeś coś takiego:

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

Musisz go usunąć za pomocą czegoś takiego:

sudo dpkg-divert --remove /usr/bin/gcc.real
Sudipta Basak
źródło