Всякий раз, когда я сталкивался с этой ошибкой, это потому, что я каким-то образом смешал вкладки и пробелы в своем редакторе.
# this works
rm foo
# versus
rm foo/
В основном, необходимо сказать ему удалять файл, не удалять каталог. Я полагаю, что различие между rm
и rmdir
существует из-за различий в способе, которым библиотека C рассматривает каждого.
Во всяком случае, первое должно работать, в то время как второе должно жаловаться на нечто, являющееся каталогом.
, Если это не работает как выше, затем проверьте свои полномочия. Вы должны записать разрешение в содержание каталога для удаления файлов.
используйте "расцеплять" команду и удостоверьтесь не для имения / в конце
$ unlink mySymLink
, расцепляют (), удаляет имя из файловой системы. , Если то имя было последней ссылкой на файл и никакие процессы, имеют файл, открытый, файл удален, и пространство, которое это использовало, сделано доступным для повторного использования. , Если имя было последней ссылкой на файл, но любые процессы все еще имеют файл, открываются, файл останется существующим, пока последний дескриптор файла, относящийся к нему, не будет закрыт.
я думаю, что это может быть проблематично, если я читаю его правильно.
, Если имя упомянуло символьную ссылку, ссылка удалена.
, Если имя упомянуло сокет, первым прибыл, первым обслужен или устройство, название его удалено, но процессы, которые имеют открытый объект, могут продолжить использовать его.
комната должна удалить символьную ссылку.
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:~$
Принятие его на самом деле является символьной ссылкой,
$ rm -d symlink
Это должно понять его, но так как это не может мы включать скрытый код, который был предназначен для другого случая, который больше не существует, но, оказывается, делает правильную вещь здесь.
Если комната не может удалить символьную ссылку, возможно, необходимо посмотреть на полномочия на каталоге, который содержит символьную ссылку. Для удаления записей каталога Вы должны записать разрешение на содержании каталога.
Принятие Вашей установки является чем-то как: ln -s /mnt/bar ~/foo
, тогда необходимо быть в состоянии сделать rm foo
без проблемы. Если Вы не можете, удостовериться, что Вы - владелец foo
и имеете разрешение писать/выполнять файл. Удаление foo
не затронет bar
, если Вы не сделаете это рекурсивно.