背景:服务器迁移到阿里云,在阿里云上布apache,由于改变软件路径,故需要删除原先的软链接(软件软链接目录)
执行操作:\rm -r /data/httpd
执行后果:软链接文件没有删除,但是源文件下的内容被删除了
当时我的思考:
可能是由于-r参数,递归删除,对于软链接,它会删除源文件
测试:
[root@iZ25papb7g2Z data]# mkdir 123 [root@iZ25papb7g2Z data]# cd 123 [root@iZ25papb7g2Z 123]# touch {1..5}.txt [root@iZ25papb7g2Z 123]# ls 1.txt 2.txt 3.txt 4.txt 5.txt [root@iZ25papb7g2Z 123]# cd ../ [root@iZ25papb7g2Z data]# ln -s /data/123/ /data/456 [root@iZ25papb7g2Z data]# ls /data/456/ 1.txt 2.txt 3.txt 4.txt 5.txt [root@iZ25papb7g2Z data]# \rm -r 456/ rm: cannot remove `456‘: Not a directory [root@iZ25papb7g2Z data]# ls 456 [root@iZ25papb7g2Z data]# ls 123 [root@iZ25papb7g2Z data]# ls 123 456
由此证明我的猜测是对的。
那怎么删除软链接文件呢?
正确的删除应该是这样的
[root@iZ25papb7g2Z data]# rm 456 rm: remove symbolic link `456‘? y [root@iZ25papb7g2Z data]# ls 456 ls: cannot access 456: No such file or directory
最后得出结论:软链接就是一个文件,不是目录
(各位看官,别忘了留下你宝贵的意见哈)
本文出自 “IT--小哥” 博客,请务必保留此出处http://402753795.blog.51cto.com/10788998/1761854
原文地址:http://402753795.blog.51cto.com/10788998/1761854