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

185459
Peter Smit

Я сделал символическую ссылку со следующей командой:

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, bash)

91
СОВЕТ: `rm -r link /` удаляет содержимое на цели Gayan Weerakutti 8 лет назад 2

5 ответов на вопрос

116
Swanand

Удалить косую черту:

С подсказкой:

$ rm test5

Без подсказки:

$ rm -f test5

Там написано "разрешение отказано". 1.21 gigawatts 9 лет назад 0
Без косой черты. Так что `test5 /` неверен. pylover 8 лет назад 0
18
pelms

Попробуй rm test5
(без косой черты).

Слэш показывает, что «test5» является direactory в то время как на самом деле файл ссылки на каталог.

12
Callum

Вы можете запустить удаление косой черты:

$ rm test5 

Это удалит файл (т.е. символическую ссылку).

В качестве альтернативы вы можете использовать unlink:

$ unlink test5 

Опять же, вы должны опустить косую черту, так как вы пытаетесь отсоединить символическую ссылку, а не каталог.

0
user872812

Иногда, если вы используете автозаполнение для присвоения названию ссылки, которую хотите удалить, вы можете не увидеть завершающий слеш, но он «наполовину там», и этот невидимый слеш по-прежнему выдает ошибку удаления при попытке удалить эту ссылку.

Таким образом, в этом случае введите символ за символом ссылку, которая будет удалена как «test5», например. rm test5,

Никогда не слышал о невидимой слеш. Какая оболочка это делает? Kamil Maciorowski 6 лет назад 1
Я думаю, что это возможно ссылка на символ, скрываемый linewrap + курсор? bertieb 6 лет назад 0
-2
bobby

Чувствую себя глупо, но вы пробовали rm -r? Так как это символическая ссылка, она не должна удалять цель.

Редактировать: только что попробовал, это правильно

Edit 2: rmdir говорит, что в первой строке справочной страницы он удаляет пустые каталоги. Я бы подумал, потому что это ссылка, в которой он проверял бит каталога в свойствах своего файла, а потому что rmdir не подозревает, что в этом случае он выдает ошибки. Просто используйте rm -r

Это попросит меня удалить файлы в каталоге, это не то, что я хочу, я хочу удалить только ссылку Peter Smit 15 лет назад 2
Спрос был, потому что интерактивный был определен в моем .profile. Добавлен ответ на rm -r. Это все еще не работает. Peter Smit 15 лет назад 0
Вы оставили след "/", поэтому он потерпел неудачу bobby 15 лет назад 0

Похожие вопросы