Невозможно удалить символическую ссылку на каталог - PullRequest
1 голос
/ 05 апреля 2019

У меня есть каталог reference в моем каталоге Downloads, который содержит символическую ссылку (созданную с помощью ln -s) на другой каталог.При попытке удалить символическую ссылку появляется конфликтующее сообщение об ошибке:

rm возвращает «Является каталогом»

rmdir возвращает «Не каталогом»

Это толькопроисходит с cellranger/ (за которым следует косая черта), а не с cellranger.

[tom@rlgsw68 cellranger]$ pwd
/home/tom/Downloads/reference

[tom@rlgsw68 cellranger]$ ls -lth
lrwxrwxrwx 1 tom genome 33 Apr  4 14:52 cellranger -> /analysisdata/genomes/cellranger/

[tom@rlgsw68 cellranger]$ rm cellranger/
rm: cannot remove directory `cellranger/': Is a directory

[tom@rlgsw68 cellranger]$ rmdir  cellranger/
rmdir: cellranger/: Not a directory

[tom@rlgsw68 cellranger]$ rm cellranger

Почему ни одна из этих команд для удаления символической ссылки не работает и почему возникают эти конфликтующие ошибки?Каков рекомендуемый способ удаления символических ссылок без удаления содержимого в исходном каталоге.rm -rf cellranger/ также не удаляет символическую ссылку (но не возвращает ошибку).

example of terminal session

Информация: я использую сервер Linux (Debian)9.0).Эти ошибки происходят как с bash, так и с zsh.Двусмысленные имена были удалены из примера.Я сталкивался с этим, когда каталог включал ссылку на родительский каталог в дополнение к содержимому:

/home/tom/Downloads/reference/cellranger/cellranger/ -> /analysisdata/genomes/cellranger/

1 Ответ

0 голосов
/ 05 апреля 2019

Помещая косую черту, вы обращаетесь к каталогу, по которому символическая ссылка указывает на , больше не символическую ссылку.Печать номера inode (номера, на который ссылается путь в файловой системе) показывает разницу между разыменованием символической ссылки и каталога:

$ cd "$(mktemp --directory)"
$ mkdir a
$ stat --format %i a/
9
$ ln --symbolic a b
$ stat --format %i b
10
$ stat --format %i b/
9

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...