Похоже, в моей системе есть невидимая символическая ссылка.
Сначала я перехожу к /var/www
каталог и ничего не показывает:
# var/www# ls -la
total 0
Далее я создаю символическую ссылку, и она успешно создается:
# var/www# ln -s /var/www/server/ /var/www
# var/www# ls -la
total 0
lrwxrwxrwx. 1 root root 16 Aug 23 22:51 server -> /var/www/server/
Примечание: в /var/www/
Удаляю символическую ссылку:
# var/www# rm server
# var/www# ls -la
total 0
Я успешно создаю каталог сервера:
# var/www# mkdir server
# var/www# ls -la
total 4.0K
drwxr-xr-x. 2 root root 4.0K Aug 23 22:52 server
Пытаюсь создать символьную ссылку и получаю ошибку:
# var/www# ln -s /var/www/server/ /var/www/
ln: creating symbolic link `/var/www/server': File exists
Я ищу символическую ссылку, а ее там нет:
# var/www# ls -la
total 4.0K
drwxr-xr-x. 2 root root 4.0K Aug 23 22:52 server
# ls -la server/
total 0
Проблема: как только я создаю server
папка в /var/www/
Я больше не могу успешно создать символическую ссылку. Я также пытался найти потерянные ссылки с помощью этих команд:
find / -type l -exec ls -l {} \; > links.txt
и
find -L -type l > links.txt
... и я не нашел ничего, связанного с /var/www
.
Я также пробовал:
strace ln -n -s -f /var/www/server /var/www
и он вернулся частично:
write(2, "`/var/www/server' and `/var/www/"..., 57
/var/www/server' and
/ var / www / server '- это один и тот же файл) = 57
Не повезло. Как мне удалить «невидимую» символическую ссылку?
Это не «невидимая» символическая ссылка, это папка /var/www/
. На первом этапе вы можете создать символическую ссылку, потому что /var/www/server
не существует, значит, это «мертвая» ссылка. Вы увидите, что он выделен красным цветом из ls -l
вывод.
Когда вы проводили операцию в 1.
вы создали символическую ссылку, которая фактически указывает на себя. Если бы вы попытались его использовать, вы бы получили сообщение об ошибке, например.
cd server
bash: cd: server: Too many levels of symbolic links
или какой-то другой в зависимости от того, как вы пытались его использовать.
В 4.
вы создали каталог под названием server
и в 5.
вы пытались создать ссылку под названием server
в /var/www
каталог - нельзя, так как ссылка не может иметь то же имя, что и существующий каталог.