Назад | Перейти на главную страницу

Как мне увидеть и удалить «невидимую / потерянную» символическую ссылку?

Похоже, в моей системе есть невидимая символическая ссылка.

  1. Сначала я перехожу к /var/www каталог и ничего не показывает:

    # var/www# ls -la
    total 0
    
  2. Далее я создаю символическую ссылку, и она успешно создается:

    # 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/

  3. Удаляю символическую ссылку:

    # var/www# rm server
    # var/www# ls -la
    total 0
    
  4. Я успешно создаю каталог сервера:

    # var/www# mkdir server
    # var/www# ls -la
    total 4.0K
    drwxr-xr-x. 2 root root 4.0K Aug 23 22:52 server
    
  5. Пытаюсь создать символьную ссылку и получаю ошибку:

    # var/www# ln -s /var/www/server/ /var/www/
    ln: creating symbolic link `/var/www/server': File exists
    
  6. Я ищу символическую ссылку, а ее там нет:

    # 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 каталог - нельзя, так как ссылка не может иметь то же имя, что и существующий каталог.