Як видалити символічне посилання


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, in / var / www / phpmyadmin
Джеймс

6
дозволу відмовлено: Ви знаєте, що вам потрібен sudo, якщо ви хочете використовувати його в ситуації, коли ви не володієте файлом? Це теж стосується 'rm'.
Rinzwind

2
Я зробив це rm / usr / bin / python і видалив мій python з ubuntu: S

2
@RaheelKhan ні, ти цього не зробив - ні - ти видалив SYMLINK. Python, однак, покладається на це символьне посилання. Якщо ви відтворите цей симпосилання python повернеться.
Rinzwind

1
Я спробую цю команду, але здається, що мій файл видалено, я не хочу видаляти свій файл
saeed masoomi

24

Ви також можете спробувати unlinkкомандувати.
unlinkце команда псевдоніму rm. тому rm <symlink>буде працювати так само, якunlink <symlink>

Ось посилання на посилання .


9
unlinkне має нічого спільного із символьними посиланнями зокрема. Дивіться serverfault.com/a/38817/64085
Метью читайте

@kushvarma, але це працює. ти спробував це?
хакунамі

1
відповідь може бути правильним, але запитати новачків
Массачусетський технологічний інститут

" unlinkє псевдонімом команди rm" [Citation Needed]
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 при отриманні не знайденої помилки після встановлення.


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

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

@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.