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


100

Я зробив символічний зв’язок із такою командою:

ln -s ../test5

Я хочу видалити його зараз, але мій номер rm не вдається:

$ 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/

Як я можу видалити своє символічне посилання? (Ubuntu 8.10, баш)


4
ПОРАДА: rm -r link/видаляє вміст у цілі
Gayan Weerakutti

Відповіді:



19

Спробуйте rm test5
(без косої риски).

Нахил показує, що "test5" є діаректорієм, тоді як це фактично файл, що посилається на каталог.


13

Можна запустити видалення останньої косої риски:

$ rm test5

Це видалить файл (тобто симпосилання).

Або ви можете використовувати від’єднання:

$ unlink test5

Знову потрібно пропустити косу рису, оскільки ви намагаєтесь від’єднати символьне посилання, а не каталог.


0

Іноді, якщо ви використовуєте автозаповнення для назви посилання, яке ви хочете видалити, можливо, ви не побачите останньої косої риски, але вона "наполовину", і цей невидимий косої риски все ще видає помилку при видаленні цього посилання.

Тож у цьому випадку введіть символ за символом, посилання, яке потрібно видалити як "test5", наприклад. rm test5.


1
Ніколи не чув про невидиму косу рису. Яка оболонка це робить?
Каміль Маціоровський

Я думаю, це можливо посилання на те, що персонаж приховується за допомогою обертання рядка + курсору?
bertieb

0

Проблема в ОП - це відставання /, тож test5/видає помилку, але test5працює.

Я вважаю за краще використовувати unlink, ніж rmяк ясніший намір, і немає шансів помилково видалити реальний каталог замість посилання. Переконайтесь, що /після імені каталогу немає сліду , наприклад:

unlink test5

-1

Я почуваюсь дурним запитанням, але ти спробував rm -r? Оскільки це символічне посилання, воно не повинно видаляти ціль.

Редагувати: Просто спробував, це правильно

Редагувати 2: rmdir говорить у своєму першому рядку довідкової сторінки, що видаляє порожні каталоги. Я б подумав, оскільки це посилання, у нього було перевірено біт каталогів на його властивості файлів, а тому, що rmdir не підозрює, що в такому випадку він розпилює помилки. Просто використовуйте rm -r


2
Це попросить мене видалити файли в каталозі, це не те, що я хочу, я хочу видалити лише посилання
Peter Smit

Запитання було тому, що інтерактив був визначений у моєму .profile. Додано відповідь на rm -r. Це все ще не працює.
Пітер Сміт

Ви залишили "/", тому не вдалося
бобі
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.