2009-07-20 12:40:03 +0000 2009-07-20 12:40:03 +0000
101
101

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

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

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)

Ответы (6)

122
122
122
2009-07-20 12:51:01 +0000

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

С помощью подсказки:

$ rm test5

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

$ rm -f test5

21
21
21
2009-07-20 12:54:12 +0000

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

Косая черта указывает на то, что ‘test5’ является direactory, в то время как на самом деле это файл link в каталог.

14
14
14
2009-07-20 13:06:36 +0000

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

$ rm test5

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

Или же вы можете использовать unlink:

$ unlink test5

Снова вы должны опустить трейлинговый слэш, поскольку вы пытаетесь удалить symlink, а не каталог.

0
0
0
2019-05-02 03:05:12 +0000

Проблема в операционной - трейлинг /, поэтому test5/ бросает ошибку, но test5 работает.

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

unlink test5
0
0
0
2018-02-14 23:23:37 +0000

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

В таком случае введите символ за символом удаляемую ссылку как “test5”, например, rm test5.

-1
-1
-1
2009-07-20 12:42:27 +0000

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

Правка: Просто попробовала, правильно

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

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

6
10
11
5
1