如何查看和删除“不可见/孤立”的符号链接?

如何查看和删除“不可见/孤立”的符号链接?

我的系统上似乎有一个看不见的符号链接。

  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

没运气。我该如何删除“不可见”的符号链接?

答案1

当你执行该操作时,1.你创建了一个指向自身的符号链接。如果你尝试使用它,你会收到一条错误消息,例如

cd server
bash: cd: server: Too many levels of symbolic links

或者其他的,取决于您如何使用它。

4.创建了一个名为的目录server,并尝试 在该目录中5.创建一个名为的链接- 但您不能这样做,因为链接不能与现有目录同名。server/var/www

答案2

它不是一个“不可见”的符号链接,而是一个文件夹/var/www/。在第一步,您可以创建一个符号链接,因为/var/www/server不存在,所以它是一个“死”链接。您将在ls -l输出中看到它以红色突出显示。

相关内容