91

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

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)

5 ответов5

116

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

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

$ rm test5

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

$ rm -f test5

18

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

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

12

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

$ rm test5

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

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

$ unlink test5

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

0

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

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

-1

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .