创建软连接 ln -s
我们通过实例查看ls的路径发现,在/tmp/目录下的/bin/ls指向的是/usr/bin/ls,所以这里/tmp/bin/ls所存储的就是一个绝对路径,我们可以看做是一个软链接文件,其大小根据绝对路径的长度来决定。类似快捷方式。应用场景,将日志拷贝到另外的地方,在原位置留下软链接,可以更改文件的存放位置。
[root@master tmp]# ls -l /bin
lrwxrwxrwx. 1 root root 7 May 15 23:23 /bin -> usr/bin
[root@master tmp]# ls -ld /usr/bin
dr-xr-xr-x. 2 root root 24576 Jun 1 09:31 /usr/bin
[root@master tmp]# /bin/ls
ls2
systemd-private-0ff0f3dae2804d77b70af201e3ee734b-vgauthd.service-ZPbHKi
systemd-private-0ff0f3dae2804d77b70af201e3ee734b-vmtoolsd.service-i4O0pB
systemd-private-ea100dfd1fe140c88cfaf97842a8a7ad-vgauthd.service-MJNNdA
systemd-private-ea100dfd1fe140c88cfaf97842a8a7ad-vmtoolsd.service-tIHYJp
[root@master tmp]# /usr/bin/ls
ls2
systemd-private-0ff0f3dae2804d77b70af201e3ee734b-vgauthd.service-ZPbHKi
systemd-private-0ff0f3dae2804d77b70af201e3ee734b-vmtoolsd.service-i4O0pB
systemd-private-ea100dfd1fe140c88cfaf97842a8a7ad-vgauthd.service-MJNNdA
systemd-private-ea100dfd1fe140c88cfaf97842a8a7ad-vmtoolsd.service-tIHYJp
实例,需求想在某个地方找到另外一个地方的某个文件;写软连接的时候最好是写绝对路径,不然会存在一些弊端。
对文件软连接
[root@master ~]# ln -s /root/2.txt /root/test/3.txt
[root@master ~]# ls -ld /root/2.txt /root/test/3.txt
-rw-r--r--. 1 root root 0 Jun 8 01:45 /root/2.txt
lrwxrwxrwx. 1 root root 11 Jun 8 01:57 /root/test/3.txt -> /root/2.txt (2.txt 部分是源文件; /root/test/2.txt是目标文件)
对目录软连接
[root@master ~]# ls -ld 、/root/tmp/xiaoliang /root/xiao
lrwxrwxrwx. 1 root root 15 Jun 8 01:52 /root/xiao -> /tmp/xiaoliang/
drwxr-xr-x. 2 root root 6 Jun 8 01:52 /tmp/xiaoliang
需求:日志快写满磁盘怎么办?
比如有一个进程不断的往/boot 分区不停的往这个分区写数据,而此时随着时间的增长,这个分区即将被写满,会把磁盘撑爆,甚至会导致系统出现故障。
cp /boot/a.log /a.log(把/boot/a.log文件拷贝到 /a.log;也就是比较大的分区下面)
rm -rf /boot/a.log ; ln -s /a.log /boot/a.log (拷贝过/分区后,马上删了/boot下的a.log;然后去做一个软连接,此时,实际上写的是/a.log;这样就解决了占用磁盘空间的问题了)