2.21 软链接文件

软链接介绍

  • 链接文件分为硬链接文件(hard link)和软链接文件(symbolic link),两种链接的本质区别在于inode。
    • 软链接文件:是建立一个独立的文件,当读取这个链接文件时,它会把读取的行为转发到该文件所链接的文件上。做软链接尽量使用绝对路径。

例子

1``` 2[root@hf-01 ~]# ls -l /bin 这个/bin,就是一个软链接文件,真正是在/usr/bin/下 3lrwxrwxrwx. 1 root root 7 8月 21 05:03 /bin -> usr/bin 4[root@hf-01 ~]# /bin/ls 511.txt 123 234 2.txt 33.txt anaconda-ks.cfg.1 ha.txt hf 6[root@hf-01 ~]# /usr/bin/ls 会发现和/bin/ls是一个软链接文件 711.txt 123 234 2.txt 33.txt anaconda-ks.cfg.1 ha.txt hf 8```
  • 软链接其实就是在一个文件本身存了另一个文件目录的路径。链接文件的大小适合路径是有关系的,路径越长,那这个软链接文件越大

    1/lib64/目录中软链接文件最多 2[root@hf-01 ~]# ls -l /lib64/ 3

软链接优势

软链接就像是windows中的快捷方式,可以很大程度的节省磁盘空间

案例分析

1比如要找一个文件,必须要在/tmp/123/12/1.txt,而本身这个1.txt文件放到了/root/123/这个目录下 2而这个程序必须要在/tmp/12/目录下找到1.txt文件 3 4方法一:可以拷贝一份到该目录下,但若是文件更改后,就会继续要拷贝,所以很麻烦。 5 6方法二:给/root/123/1.txt做一个软链接

ln -s创建软链接

  • ln -s 源文件 软链接文件

    [root@hf-01 ~]# ls 11.txt 123 234 2.txt 33.txt anaconda-ks.cfg.1 ha.txt hf [root@hf-01 ~]# cd /tmp/ [root@hf-01 tmp]# ls aminglinux amning mysql.sock user1 yum.log yunwei [root@hf-01 tmp]# ln -s /tmp/yum.log /root/123/yum.log [root@hf-01 tmp]# ls -l /root/123/ 这样就形成了一个软链接文件 总用量 0 lrwxrwxrwx. 1 root root 12 10月 30 05:44 yum.log -> /tmp/yum.log

ln -s 链接目录

  • 不仅可以链接文件,还可以链接目录

    [root@hf-01 tmp]# ln -s /tmp/amning/ /root/amning111 [root@hf-01 tmp]# ls -l !$ ls -l /root/amning111 lrwxrwxrwx. 1 root root 12 10月 30 05:51 /root/amning111 -> /tmp/amning/

同一目录,创建软链接

  • 在/tmp/目录下,源文件aa.log链接——》目标文件ss.log

    [root@hf-01 tmp]# ls -l 总用量 4 -rw-r--r--. 1 root root 0 10月 30 06:09 aa.log srwxrwxrwx. 1 mysql mysql 0 10月 30 04:49 mysql.sock drwxrwxrwx. 2 user1 user1 6 10月 27 09:07 user1 [root@hf-01 tmp]# ln -s aa.log ss.log [root@hf-01 tmp]# ls -l 总用量 4 -rw-r--r--. 1 root root 0 10月 30 06:09 aa.log srwxrwxrwx. 1 mysql mysql 0 10月 30 04:49 mysql.sock lrwxrwxrwx. 1 root root 6 10月 30 06:13 ss.log -> aa.log

弊端——在同一目录下
  • 弊端——假设做了一个相对路径的软链接,再把所有的文件拷贝到另一台机器上的时候(软链接本身也是一个文件),结果会发现这个文件不存在,(也就是源不存在),所以尽量使用绝对路径
弊端解决方法
  • 尽量使用绝对路径,这样就会避免文件的不存在

    [root@hf-01 ~]# cd /tmp/ [root@hf-01 tmp]# ls -l 总用量 4 drwxr-xr-x. 4 user1 hanfeng 53 10月 30 06:01 aminglinux lrwxrwxrwx. 1 root root 6 10月 30 06:13 ss.log -> aa.log [root@hf-01 tmp]# mv ss.log aminglinux/ [root@hf-01 tmp]# cd aminglinux [root@hf-01 aminglinux]# ls -l 总用量 0 drwxr-xr-x. 4 user1 hanfeng 31 10月 25 06:55 aming2 lrwxrwxrwx. 1 root root 6 10月 30 06:13 ss.log -> aa.log

    这里会发现aa.log在飘红闪烁,这是因为这个文件不存在

阿铭工作中例子

1[root@hf-01 ~]# df -h 查看磁盘分区情况 2文件系统 容量 已用 可用 已用% 挂载点 3/dev/sda3 18G 2.4G 16G 14% / 4devtmpfs 489M 0 489M 0% /dev 5tmpfs 494M 0 494M 0% /dev/shm 6tmpfs 494M 6.7M 487M 2% /run 7tmpfs 494M 0 494M 0% /sys/fs/cgroup 8/dev/sda1 197M 75M 123M 38% /boot
  • 假如在/boot下,一个hanfeng.log日志文件占用很大空间,但是这个yin.log日志文件必须在这个/boot目录下,不能更改文件路径,那么就可以使用软链接来完美解决这个问题。可以将hanfeng.log 复制到/根目录下(大磁盘空间下)cp /boot/hanfeng.log /hanfeng.log 然后删除/boot/hanfeng.log文件,尽快的将复制的那个日志做个软链接链接到/boot,ln -s /hanfeng.log /boot/hanfeng.log就可以解决文件过大但是不能改路径的问题。

总结

  • 命令ln(link)
  • 格式:ln【-s】 【来源文件】【目的文件】
  • -s 建立软链接,不加-s建立硬链接。
点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

linux 文件权限

当我们部署皕杰报表时,有时需要对文件赋予权限。linux文件对不同用户可以分别设置权限,管理员(root)有所有权限。文件权限解释查看路径下所有文件的命令:ll或者lsl查询结果列出了当前路径下的文件和文件夹,每行数据以相同格式显示。第一个字符常见的两种,d和,d表示文件夹,表示文件。还有l表示链接,软链接比较常见,如图:从第二个字符开始,每三个一组

4.16 chown 4.17 软链接和硬链接 4.18 软链接用法示例 4.19 yum工具 4.20 rpm工具

4.16chownchown用来更改一个文件或者目录的所有者或者所属组\R级联更改一个目录下所有的目录和文件例如:chownuser1:users1.txtchownuser1.users1.txt中间可以用冒号也可以用点useradd添加用户的命令,如useradduser1添加u

Linux 软链接的创建、删除和更新

创建软链接lns源文件或目录目标文件或目录例如:当前路劲创建test引向/var/www/test文件夹lns/var/www/testtest创建/var/test引向/var/www/test文件夹lns/var/www/test/var/test删除软链

Markdown文件中的GitHub相对链接

问题:_IsthereawaytocreateaURLanchor,<a,linkfromwithinaMarkdownfile,toanotherfilewithinthesamerepositoryandbranch(akaalinkrelativetothecurrent