2.21-软链接文件

为什么要用软链接?
举个例子: /tmp/one/two/1.txt 这个1.txt因为某种原因不在这个位置了,跑到了 /root/one/1.txt 位置。想在前面的位置找到后面的这个文件复制当然是可以的,但是会多占一定的内存,并且假如文件更改的话,还得需要再更改,比较麻烦。所以,才用软链接,这样就相当于生成一个快捷方式。

先来看下什么样子的东西叫软链接
下面带箭头的那行就是软连接

[root@evan-01 ~]# ls -l /bin
lrwxrwxrwx. 1 root root 7 Aug  8 18:31 /bin -> usr/bin
[root@evan-01 ~]#

/bin/ls 和 /usr/bin/ls 效果是一样的

[root@evan-01 ~]# /bin/ls
anaconda-ks.cfg  anaconda-ks.cfg.bak  test  test2.txt  test3.txt
[root@evan-01 ~]# usr/bin/ls
[root@evan-01 ~]# /usr/bin/ls
anaconda-ks.cfg  anaconda-ks.cfg.bak  test  test2.txt  test3.txt
[root@evan-01 ~]# 

软链接文件

[root@evan-01 ~]# cd /tmp
[root@evan-01 tmp]# ll
total 132
-rw-r--r--. 1 root  root      57 Aug 10 16:14 error
drw-r-xr--. 2 evan1 evan1     19 Aug  9 10:10 evan2
drwxr-xr-x. 4 root  root      30 Aug  8 15:48 evanlinux
drwxr-xr-x. 3 root  root      17 Aug  8 14:45 evanlinux2
-rwx------. 1 root  root     836 Aug  8 18:36 ks-script-R9kDZ_
-rw-r--r--. 1 root  root      12 Aug 10 16:14 log
-rwxr-xr-x. 1 root  root  117656 Aug  8 11:19 ls2
drwx------. 3 root  root      17 Aug 12 08:47 systemd-private-0d5c9ec1ab594c4a9846d22b9e1c6e38-chronyd.service-VHrQvm
drwx------. 3 root  root      17 Aug 12 08:47 systemd-private-0d5c9ec1ab594c4a9846d22b9e1c6e38-vgauthd.service-jqQ7rS
drwx------. 3 root  root      17 Aug 12 08:47 systemd-private-0d5c9ec1ab594c4a9846d22b9e1c6e38-vmtoolsd.service-qxJEiR
drwxrwxrwx. 2 evan2 evan2      6 Aug 12 10:35 test
-rw-r--r--. 1 root  evan1      0 Aug  8 15:41 test.txt
-rwxrwxrwx. 1 evan1 evan1     44 Aug 12 10:29 wenjian.txt
-rw-------. 1 root  root       0 Aug  8 18:30 yum.log
[root@evan-01 tmp]# ln -s /tmp/yum.log  /root/test/yum.log
[root@evan-01 tmp]# ls -l /root/test
total 4
-rw-r--r--. 1 root evan1  0 Aug 12 09:52 hahaha.txt
-rw-r--r--. 1 root root   0 Aug 12 09:56 heiheihei.txt
drwxr-sr-x. 2 root evan1  6 Aug 12 09:54 ok
drwxr-xr-x. 2 root root   6 Aug 12 09:58 okok
-rw-rw-r--. 1 root root   7 Aug  9 15:00 ok.txt
drwxrwxr--. 2 root root  19 Aug  9 14:55 one
lrwxrwxrwx. 1 root root  12 Aug 12 10:45 yum.log -> /tmp/yum.log
[root@evan-01 tmp]# 

设置软链接的时候前面的是源文件,后面的是软链接文件
[root@evan-01 tmp]# ln -s /tmp/yum.log /root/test/yum.log

设置软链接成功后前面的是软链接文件,后面的是源文件
lrwxrwxrwx. 1 root root 12 Aug 12 10:45 yum.log -> /tmp/yum.log

软链接目录

[root@evan-01 tmp]# ll
total 132
-rw-r--r--. 1 root  root      57 Aug 10 16:14 error
drw-r-xr--. 2 evan1 evan1     19 Aug  9 10:10 evan2
drwxr-xr-x. 4 root  root      30 Aug  8 15:48 evanlinux
drwxr-xr-x. 3 root  root      17 Aug  8 14:45 evanlinux2
-rwx------. 1 root  root     836 Aug  8 18:36 ks-script-R9kDZ_
-rw-r--r--. 1 root  root      12 Aug 10 16:14 log
-rwxr-xr-x. 1 root  root  117656 Aug  8 11:19 ls2
drwx------. 3 root  root      17 Aug 12 08:47 systemd-private-0d5c9ec1ab594c4a9846d22b9e1c6e38-chronyd.service-VHrQvm
drwx------. 3 root  root      17 Aug 12 08:47 systemd-private-0d5c9ec1ab594c4a9846d22b9e1c6e38-vgauthd.service-jqQ7rS
drwx------. 3 root  root      17 Aug 12 08:47 systemd-private-0d5c9ec1ab594c4a9846d22b9e1c6e38-vmtoolsd.service-qxJEiR
drwxrwxrwx. 2 evan2 evan2      6 Aug 12 10:35 test
-rw-r--r--. 1 root  evan1      0 Aug  8 15:41 test.txt
-rwxrwxrwx. 1 evan1 evan1     44 Aug 12 10:29 wenjian.txt
-rw-------. 1 root  root       0 Aug  8 18:30 yum.log
[root@evan-01 tmp]# ln -s /tmp/evan2 /root/test/evan3
[root@evan-01 tmp]# ls -l !$
ls -l /root/test/evan3
lrwxrwxrwx. 1 root root 10 Aug 12 10:48 /root/test/evan3 -> /tmp/evan2
[root@evan-01 tmp]# 

做相对路径软链接

[root@evan-01 tmp]# ll
total 132
-rw-r--r--. 1 root  root      57 Aug 10 16:14 error
drw-r-xr--. 2 evan1 evan1     19 Aug  9 10:10 evan2
drwxr-xr-x. 4 root  root      30 Aug  8 15:48 evanlinux
drwxr-xr-x. 3 root  root      17 Aug  8 14:45 evanlinux2
-rwx------. 1 root  root     836 Aug  8 18:36 ks-script-R9kDZ_
-rw-r--r--. 1 root  root      12 Aug 10 16:14 log
-rwxr-xr-x. 1 root  root  117656 Aug  8 11:19 ls2
drwx------. 3 root  root      17 Aug 12 08:47 systemd-private-0d5c9ec1ab594c4a9846d22b9e1c6e38-chronyd.service-VHrQvm
drwx------. 3 root  root      17 Aug 12 08:47 systemd-private-0d5c9ec1ab594c4a9846d22b9e1c6e38-vgauthd.service-jqQ7rS
drwx------. 3 root  root      17 Aug 12 08:47 systemd-private-0d5c9ec1ab594c4a9846d22b9e1c6e38-vmtoolsd.service-qxJEiR
drwxrwxrwx. 2 evan2 evan2      6 Aug 12 10:35 test
-rw-r--r--. 1 root  evan1      0 Aug  8 15:41 test.txt
-rwxrwxrwx. 1 evan1 evan1     44 Aug 12 10:29 wenjian.txt
-rw-------. 1 root  root       0 Aug  8 18:30 yum.log
[root@evan-01 tmp]# ln -s yum.log evan.log
[root@evan-01 tmp]# ls -l 
total 132
-rw-r--r--. 1 root  root      57 Aug 10 16:14 error
drw-r-xr--. 2 evan1 evan1     19 Aug  9 10:10 evan2
drwxr-xr-x. 4 root  root      30 Aug  8 15:48 evanlinux
drwxr-xr-x. 3 root  root      17 Aug  8 14:45 evanlinux2
lrwxrwxrwx. 1 root  root       7 Aug 12 10:49 evan.log -> yum.log
-rwx------. 1 root  root     836 Aug  8 18:36 ks-script-R9kDZ_
-rw-r--r--. 1 root  root      12 Aug 10 16:14 log
-rwxr-xr-x. 1 root  root  117656 Aug  8 11:19 ls2
drwx------. 3 root  root      17 Aug 12 08:47 systemd-private-0d5c9ec1ab594c4a9846d22b9e1c6e38-chronyd.service-VHrQvm
drwx------. 3 root  root      17 Aug 12 08:47 systemd-private-0d5c9ec1ab594c4a9846d22b9e1c6e38-vgauthd.service-jqQ7rS
drwx------. 3 root  root      17 Aug 12 08:47 systemd-private-0d5c9ec1ab594c4a9846d22b9e1c6e38-vmtoolsd.service-qxJEiR
drwxrwxrwx. 2 evan2 evan2      6 Aug 12 10:35 test
-rw-r--r--. 1 root  evan1      0 Aug  8 15:41 test.txt
-rwxrwxrwx. 1 evan1 evan1     44 Aug 12 10:29 wenjian.txt
-rw-------. 1 root  root       0 Aug  8 18:30 yum.log
[root@evan-01 tmp]# 

现在看来是没问题的,挺好。如果我们把evan.log移动一下位置,再来看看,还能不能生效

移动evan.log到别的目录

[root@evan-01 /]# cd /root
[root@evan-01 ~]# mkdir test2
[root@evan-01 tmp]# mv evan.log /root/test2/
[root@evan-01 tmp]# cd !$
cd /root/test2/
[root@evan-01 test2]# ll
total 0
lrwxrwxrwx. 1 root root 7 Aug 12 10:53 evan.log -> yum.log
[root@evan-01 test2]# 

实际看yum.log一直在闪动,证明yum.log是不存在的。

为什么会有闪动提示?
因为当前 test2 目录下没有yum.log,软连接找不到源文件了,所以提示错误了。

我们在 test2,目录下touch 个yum.log,就会立即恢复正常

[root@evan-01 test2]# touch yum.log
[root@evan-01 test2]# ll
total 0
lrwxrwxrwx. 1 root root 7 Aug 12 10:53 evan.log -> yum.log
-rw-r--r--. 1 root root 0 Aug 12 10:57 yum.log
[root@evan-01 test2]# 

做绝对路径的软链接

[root@evan-01 test2]# ls -l ../test/
total 4
lrwxrwxrwx. 1 root root  10 Aug 12 10:48 evan3 -> /tmp/evan2
lrwxrwxrwx. 1 root root   7 Aug 12 10:49 evan.log -> yum.log
-rw-r--r--. 1 root evan1  0 Aug 12 09:52 hahaha.txt
-rw-r--r--. 1 root root   0 Aug 12 09:56 heiheihei.txt
drwxr-sr-x. 2 root evan1  6 Aug 12 09:54 ok
drwxr-xr-x. 2 root root   6 Aug 12 09:58 okok
-rw-rw-r--. 1 root root   7 Aug  9 15:00 ok.txt
drwxrwxr--. 2 root root  19 Aug  9 14:55 one
lrwxrwxrwx. 1 root root  12 Aug 12 10:45 yum.log -> /tmp/yum.log
[root@evan-01 test2]# ll
total 0
lrwxrwxrwx. 1 root root 7 Aug 12 10:53 evan.log -> yum.log
-rw-r--r--. 1 root root 0 Aug 12 10:57 yum.log
[root@evan-01 test2]# rm -rf yum.log 
[root@evan-01 test2]# mv ../test/yum.log ./
[root@evan-01 test2]# ll
total 0
lrwxrwxrwx. 1 root root  7 Aug 12 10:53 evan.log -> yum.log
lrwxrwxrwx. 1 root root 12 Aug 12 10:45 yum.log -> /tmp/yum.log
[root@evan-01 test2]#

用软链接解决工作中的小问题
问题描述:在/boot目录下有一个evan.log 日志,这个日志不断在往里面写,以至于200M的空间都已经满了,但是还在往里面写,怎么办?我们能不能把写的日志放到其他的分区呢,当然可以,前提是我们不能动这个日志的路径,改了路径这个服务就会出问题

查看磁盘分区

[root@evan-01 ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   17G 1013M   16G   6% /
devtmpfs                 482M     0  482M   0% /dev
tmpfs                    493M     0  493M   0% /dev/shm
tmpfs                    493M  6.8M  486M   2% /run
tmpfs                    493M     0  493M   0% /sys/fs/cgroup
/dev/sda1               1014M  125M  890M  13% /boot
tmpfs                     99M     0   99M   0% /run/user/0
[root@evan-01 ~]#

方法
把boot目录下的evan.log复制到/

# cp /boot/evan.log /evan.log 

删除boot目录下的evan.log

# rm /boot/evan.log 

给根目录下的evan.log做了软链接到boot/

# ln -s /evan.log /boot/evan.log 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值