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

Всякий раз, когда я сталкивался с этой ошибкой, это потому, что я каким-то образом смешал вкладки и пробелы в своем редакторе.

1039
задан Freedom_Ben 4 February 2014 в 03:00
поделиться

6 ответов

# this works
rm foo
# versus
rm foo/

В основном, необходимо сказать ему удалять файл, не удалять каталог. Я полагаю, что различие между rm и rmdir существует из-за различий в способе, которым библиотека C рассматривает каждого.

Во всяком случае, первое должно работать, в то время как второе должно жаловаться на нечто, являющееся каталогом.

, Если это не работает как выше, затем проверьте свои полномочия. Вы должны записать разрешение в содержание каталога для удаления файлов.

1262
ответ дан Matthew Scharley 4 February 2014 в 03:00
поделиться

используйте "расцеплять" команду и удостоверьтесь не для имения / в конце

$ unlink mySymLink

, расцепляют (), удаляет имя из файловой системы. , Если то имя было последней ссылкой на файл и никакие процессы, имеют файл, открытый, файл удален, и пространство, которое это использовало, сделано доступным для повторного использования. , Если имя было последней ссылкой на файл, но любые процессы все еще имеют файл, открываются, файл останется существующим, пока последний дескриптор файла, относящийся к нему, не будет закрыт.

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

, Если имя упомянуло символьную ссылку, ссылка удалена.

, Если имя упомянуло сокет, первым прибыл, первым обслужен или устройство, название его удалено, но процессы, которые имеют открытый объект, могут продолжить использовать его.

https://linux.die.net/man/2/unlink

821
ответ дан Joe Phillips 4 February 2014 в 03:00
поделиться

комната должна удалить символьную ссылку.

skrall@skrall-desktop:~$ mkdir bar
skrall@skrall-desktop:~$ ln -s bar foo
skrall@skrall-desktop:~$ ls -l foo
lrwxrwxrwx 1 skrall skrall 3 2008-10-16 16:22 foo -> bar
skrall@skrall-desktop:~$ rm foo
skrall@skrall-desktop:~$ ls -l foo
ls: cannot access foo: No such file or directory
skrall@skrall-desktop:~$ ls -l bar
total 0
skrall@skrall-desktop:~$ 
17
ответ дан Steve K 4 February 2014 в 03:00
поделиться

Принятие его на самом деле является символьной ссылкой,

$ rm -d symlink

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

12
ответ дан Brad 4 February 2014 в 03:00
поделиться

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

7
ответ дан Greg Hewgill 4 February 2014 в 03:00
поделиться

Принятие Вашей установки является чем-то как: ln -s /mnt/bar ~/foo, тогда необходимо быть в состоянии сделать rm foo без проблемы. Если Вы не можете, удостовериться, что Вы - владелец foo и имеете разрешение писать/выполнять файл. Удаление foo не затронет bar, если Вы не сделаете это рекурсивно.

4
ответ дан tj111 4 February 2014 в 03:00
поделиться
Другие вопросы по тегам:

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