一、遇到问题
前几天被交接了一个十几年前的老系统,同事让帮忙发版,这是一个使用tomcat启一个mvc的单体项目;我想尽管很久不使用这个东西了,应该简单呀,无非就是上传一个war包或者编译文件,然后重启一下tomcat。
可是,进入项目目录下,我傻眼了,这个箭头指向是什么意思?我猜意思应该是从enp-service目录之间映射到enp_202204051122目录下,类似于windows中的快捷方式,应该需要创建一个目录之间关联的关系。
但是,这个配置的术语是什么呢?,应该怎么查帖子呢?搜“centos目录挂载”,“centos目录自动跳转”,“centos快捷方式”......,我找了很多,都不是。。。
隐约感觉,这应该不是什么大问题,只要找到相关的技术帖子,应该很快可以搞定,但是不知道怎么查呀,遇到技术盲区了,怎么办?找江湖上的小伙伴问吧,我直接截图,问这种目录指向,怎么创建,很快各位大佬给了关键的指点:使用 “ln -s”指令
于是有了思路去查相关的内容,对此知识点归纳如下:
二、链接文件
链接文件包括两种方式,软链接文件和硬链接文件。无论是软链接还是硬链接,文件都保持同步变化。软链接是可以跨分区的,但是硬链接只能在同一分区内。
1、软链接文件
软链接文件一般可以建立目录指向另一个目录文件的路径名,类似于windows中的快捷方式。可以是任意文件或目录,可以链接不同文件系统的文件。软链接文件甚至可以链接不存在的文件,这就产生一般称之为"断链"的问题(或曰“现象"),链接文件甚至可以循环链接自己,类似于编程语言中的递归。
软链接文件只会在你选定的位置上生成一个文件的镜像,不会占用磁盘空间
创建指令:ln -s ** **,前面是源文件地址(文件资源地址),后面是符号文件(创建之前是不存在的)
删除指令:rm -rf enp-service
创建代码示例,如下:ln -s enp_202204051122/ enp-service
[root@localhost enp]# ll
总用量 4
drwxr-xr-x. 2 root root 6 4月 24 14:09 enp_202201040809
drwxr-xr-x. 2 root root 6 4月 24 14:09 enp_202203051010
drwxr-xr-x. 2 root root 6 4月 24 14:10 enp_202204051122
-rw-r--r--. 1 root root 15 4月 24 18:13 test.txt
[root@localhost enp]# ln -s enp_202204051122/ enp-service #创建软链接
[root@localhost enp]# ll
总用量 4
drwxr-xr-x. 2 root root 6 4月 24 14:09 enp_202201040809
drwxr-xr-x. 2 root root 6 4月 24 14:09 enp_202203051010
drwxr-xr-x. 2 root root 6 4月 24 14:10 enp_202204051122
lrwxrwxrwx. 1 root root 17 4月 24 18:37 enp-service -> enp_202204051122/
-rw-r--r--. 1 root root 15 4月 24 18:13 test.txt
[root@localhost enp]# rm -rf enp-service #删除软链接
[root@localhost enp]# ll
总用量 4
drwxr-xr-x. 2 root root 6 4月 24 14:09 enp_202201040809
drwxr-xr-x. 2 root root 6 4月 24 14:09 enp_202203051010
drwxr-xr-x. 2 root root 6 4月 24 14:10 enp_202204051122
-rw-r--r--. 1 root root 15 4月 24 18:13 test.txt
在对符号文件进行读或写操作的时候,系统会自动把该操作转换为对源文件的操作,但删除链接文件时,系统仅仅删除链接文件,而不删除源文件本身。
2、硬链接文件
硬链接创建后,会在你选定的位置上生成一个和源文件大小相同的文件,硬连接的作用是允许一个文件拥有多个有效路径名,一般可以对重要文件建立硬连接,防止文件被误删。
创建指令:ln -d existfile newfile(没有-s)
删除指令:rm -rf test.txt
[root@localhost enp]# ln test.txt new_test.txt #创建硬链接
[root@localhost enp]# ll
总用量 8
drwxr-xr-x. 2 root root 6 4月 24 14:09 enp_202201040809
drwxr-xr-x. 2 root root 6 4月 24 14:09 enp_202203051010
drwxr-xr-x. 2 root root 6 4月 24 14:10 enp_202204051122
lrwxrwxrwx. 1 root root 17 4月 24 18:37 enp-service -> enp_202204051122/
-rw-r--r--. 2 root root 15 4月 24 18:13 new_test.txt #创建成功的文件
-rw-r--r--. 2 root root 15 4月 24 18:13 test.txt
[root@localhost enp]# rm -rf test.txt #删除硬链接的源文件
[root@localhost enp]# ll
总用量 4
drwxr-xr-x. 2 root root 6 4月 24 14:09 enp_202201040809
drwxr-xr-x. 2 root root 6 4月 24 14:09 enp_202203051010
drwxr-xr-x. 2 root root 6 4月 24 14:10 enp_202204051122
lrwxrwxrwx. 1 root root 17 4月 24 18:37 enp-service -> enp_202204051122/
-rw-r--r--. 1 root root 15 4月 24 18:13 new_test.txt #硬链接的文件被保留
硬链接文件有两个限制
1)、不允许给目录创建硬链接;
2)、只有在同一文件系统中的文件之间才能创建硬链接。
3)、对硬链接文件进行读写和删除操作时候,结果和软链接相同。但如果我们删除硬链接文件的源文件,硬链接文件仍然存在,而且保留了愿有的内容。