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

У меня есть символическая ссылка, ранее указывающая на каталог Dropbox. Я не знаю, что я сделал неправильно, но, видимо, теперь он указывает на себя.

hyper@mypi:/home/hyper/test$ ls -l total 1024 lrwxrwxrwx 1 hyper hyper 7 Feb 15 2013 Dropbox -> Dropbox 

Когда я пытаюсь удалить ссылку, я получаю:

 hyper@mypi:/home/hyper/test$ rm Dropbox rm: cannot remove 'Dropbox': Not a directory 

Что еще я могу попытаться избавиться от этой ссылки?

Часть выхода strace rm Dropbox:

 close(3) = 0 ioctl(0, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or TCGETS, {B38400 opost isig icanon echo ...}) = 0 newfstatat(AT_FDCWD, "Dropbox", {st_mode=S_IFLNK|0777, st_size=7, ...}, AT_SYMLINK_NOFOLLOW) = 0 geteuid() = 1000 newfstatat(AT_FDCWD, "Dropbox", {st_mode=S_IFLNK|0777, st_size=7, ...}, AT_SYMLINK_NOFOLLOW) = 0 unlinkat(AT_FDCWD, "Dropbox", 0) = -1 ENOTDIR (Not a directory) open("/usr/share/locale/locale.alias", O_RDONLY|O_CLOEXEC) = 3 fstat(3, {st_mode=S_IFREG|0644, st_size=2570, ...}) = 0 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f7ce00fc000 read(3, "# Locale name alias data base.\n#"..., 4096) = 2570 read(3, "", 4096) = 0 close(3) = 0 munmap(0x7f7ce00fc000, 4096) = 0 open("/usr/share/locale/en_US/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory) open("/usr/share/locale/en/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory) open("/usr/share/locale-langpack/en_US/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory) open("/usr/share/locale-langpack/en/LC_MESSAGES/coreutils.mo", O_RDONLY) = 3 fstat(3, {st_mode=S_IFREG|0644, st_size=619, ...}) = 0 mmap(NULL, 619, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f7ce00fc000 close(3) = 0 open("/usr/lib/charset.alias", O_RDONLY|O_NOFOLLOW) = -1 ENOENT (No such file or directory) write(2, "rm: ", 4rm: ) = 4 write(2, "cannot remove \342\200\230Dropbox\342\200\231", 27cannot remove 'Dropbox') = 27 open("/usr/share/locale/en_US/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory) open("/usr/share/locale/en/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory) open("/usr/share/locale-langpack/en_US/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory) open("/usr/share/locale-langpack/en/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory) write(2, ": Not a directory", 17: Not a directory) = 17 write(2, "\n", 1 ) = 1 lseek(0, 0, SEEK_CUR) = -1 ESPIPE (Illegal seek) close(0) = 0 close(1) = 0 close(2) = 0 exit_group(1) = ? +++ exited with 1 +++ 

Сообщение об ошибке не ссылается на символическую ссылку, а на текущий каталог!

мужчина 2 unlinkat:

 int unlinkat(int dirfd, const char *pathname, int flags); 

ОШИБКИ

ENOTDIR

pathname является относительным, а dirfd – файловым дескриптором, относящимся к файлу, отличному от каталога.

Таким образом, вы должны иметь хотя бы один уровень выше и посмотреть на каталог. Был ли он удален или что-то в этом роде (обычно это невозможно, если это CWD процесса).