Как удалить символическую ссылку


139

Я пытался создать эту символическую ссылку:

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

но я случайно набрал:

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

Итак, теперь я хочу исправить это, но там говорится, что символическая ссылка уже существует.

Ответы:


165

Вы можете использовать, rmчтобы удалить символическую ссылку.

Пример:

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

Затем ...

 rm tmo2

удалит символическую ссылку.


1
в доступе отказано. Это то, что я напечатал первым: sudo ln -s / usr / share / php, yad, в / var / www / phpmyadmin
Джеймс

6
разрешение отклонено: вы знаете, что вам нужен sudo, если вы хотите использовать его в ситуации, когда у вас нет файла? Это относится и к «рм».
Rinzwind

2
я сделал это rm / usr / bin / python и удалил мой python из Ubuntu: S

2
@RaheelKhan нет, вы не сделали, вы удалили символ. Python использует эту символическую ссылку. Если вы воссоздаете этот питон, ссылка вернется.
Rinzwind

1
Я пробую эту команду, но кажется, что мой файл был удален, я не хочу удалять мой файл
saeed masoomi

24

Вы также можете попробовать unlinkкоманду.
unlinkэто псевдоним команды rm. поэтому rm <symlink>будет работать так же, какunlink <symlink>

Вот ссылка ссылка .


9
unlinkне имеет ничего общего с символическими ссылками в частности. См. Serverfault.com/a/38817/64085
Мэтью Рид

@kushvarma, но это работает. ты пробовал это?
хакунами

1
ответ может быть правильным, но смущает новичков
mit

" unlinkэто псевдоним команды rm" [Требуется Цитирование]
mwfearnley

12

Предположим, вы пытались сделать:

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

но случайно сделал:

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

Чтобы исправить это, просто перейдите в папку, где находится ссылка, и отмените ссылку.

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

8

Вы будете использовать следующее, чтобы удалить символическую ссылку

sudo rm path/to/the/link

объяснение

  • rmявляется терминальной командой для удаления файла. Смотрите rm --helpбольше вариантов, которые он может принять.
  • sudoиспользуется, потому что символическая ссылка была создана с sudo. Следовательно, файл принадлежит пользователю root, и ваш обычный пользователь не сможет его редактировать / удалить, так как он имеет меньшую «мощность», чем root.
  • path/to/the/linkбудет /usr/share/php,yad,inосновано на вашем комментарии.

дополнительный

Также смотрите этот пост и мой комментарий к первому ответу для доступа к phpmyadmin при получении ошибки not found после установки.


Ваш комментарий не является общим. Пожалуйста, всегда используйте общую команду, чтобы показать, как удалить символическую ссылку
kushvarma

означает, что она должна быть действительной для всего, как ваша команда специфична для / usr / share / php, yad, in, но должна иметь значение rm <
symlink

@kushvarma, спасибо. Я сделал ответ более общим - изначально он был конкретным, потому что у ОП, похоже, была проблема с удалением файла
chesedo

1

Извините за некро пост, но я нашел этот вопрос, когда искал ответ на этот вопрос.

Небольшое предостережение, которое я обнаружил, было то, что я пытался запустить rmи unlinkпо символической ссылке, и я получал ошибку, что это был каталог.

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

Чтобы удалить символическую ссылку, я использовал, unlink folder_nameно она не работала, если был, /например, трейлинг, так unlink folder_name/как он думает, что это каталог, а не файл, который вы хотите удалить.


0

Я застрял здесь, потому что мне пришлось удалить, dpkg-divertи новый пакет не будет установлен, пока он не будет удален.

Так что, если вы сделали что-то вроде этого:

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

Вы должны удалить это примерно так:

sudo dpkg-divert --remove /usr/bin/gcc.real
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.