背景:服务器迁移到阿里云,在阿里云上布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]# ls1.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]# ls123 456
由此证明我的猜测是对的。
那怎么删除软链接文件呢?
正确的删除应该是这样的
[root@iZ25papb7g2Z data]# rm 456rm: remove symbolic link `456'? y[root@iZ25papb7g2Z data]# ls 456ls: cannot access 456: No such file or directory
最后得出结论:软链接就是一个文件,不是目录
(各位看官,别忘了留下你宝贵的意见哈)