linux中的软链接

lys2017年12月07日 0条评论

     在tomcat服务器中 我们重新更新一次项目,即war包 需要删除旧的目录,这样可能会删除用户上传的图片,这时候就要先备份用户上传的图片之后,删除旧目录然后重启tomcat, tomcat重启之后项目重新生成基础目录之后,将备份图片移动回去到目录里面, 很不方便!

     以下下命令就能解决问题的,利用软链接我们可以达到需要的效果 

     注意: 路径请设置为绝对路径不然无法链接成功

     ln -s /usr/local/tomcat/www.developzhe.com/upload /usr/local/tomcat/webapps/maven-web-demo/

    即使你删除了 /usr/local/tomcat/webapps/maven-web-demo/ 也不会删除到图片 因为图片是放在    /usr/local/tomcat/www.developzhe.com/upload  只要之后重新执行上面的shell命令就行的

    不过发生了惨痛的一件事,就是我有一次直接覆盖tomcat里面的webapps中的war包,没有关闭tomcat,导致所有图片被删除,至今未找到原因,所以不建议这样使用,我现在是直接将图片传到外部而不是maven-web-demo里面,最后访问的时候使用nginx解析 

如下:

  location /upload/  {              
           root   /usr/local/tomcat/www.developzhe.com;
  }

软连接删除

[root@nodek8s1 www]# ln -s /home/www/testlink/   /home/www/testlink-s
[root@nodek8s1 www]# cd test
-bash: cd: test: No such file or directory
[root@nodek8s1 www]# cd testlink
[root@nodek8s1 testlink]# ls
[root@nodek8s1 testlink]# touch 1.txt
[root@nodek8s1 testlink]# cat /home/www/testlink-s/
cat: /home/www/testlink-s/: Is a directory
[root@nodek8s1 testlink]# ls /home/www/testlink-s/
1.txt
[root@nodek8s1 testlink]# ll
total 0
-rw-r--r-- 1 root root 0 Dec  3 17:56 1.txt
[root@nodek8s1 testlink]# rm /home/www/testlink-s
rm: remove symbolic link ‘/home/www/testlink-s’? y
[root@nodek8s1 testlink]# ls
1.txt
[root@nodek8s1 testlink]#

测试:

ln -s /home/www/testlink/   /home/www/testlink-s 
rm -rf /home/www/testlink-s/ 
#删除的并不是链接文件 而是真正的 /home/www/testlink/ 文件夹 。

想要删除链接文件要用以下命令:

 rm /home/www/testlink-s
#只是少了一个“ / ” 删除的就是链接文件, 文件夹最后不要加上/

软连接删除部分参考

https://blog.tuine.me/12.html