我的系统上似乎有一个看不见的符号链接。
首先,我进入
/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
没运气。我该如何删除“不可见”的符号链接?
答案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
输出中看到它以红色突出显示。