软链接和硬链接
软链接比较实用的一个功能是,一个正在使用的文件不断增大,但是当前分区空间不足,可以将该文件移动到其他目录下,软链接到当前目录,服务或应用认为文件仍然在当前目录下,继续正常运行。起到了一个偷梁换柱的功能。软链接也可以作用于目录
[root@daixuan ~]# ln -s /root/12.txt /tmp/235.txt            ln后有 -s 是软链接
[root@daixuan ~]# !ls
ls -l /tmp
lrwxrwxrwx  1 root    root      12 10月 25 00:25 235.txt -> /root/12.txt
[root@daixuan ~]# du -sh /root/1.txt;du -sh /tmp/1.txt
12K     /root/1.txt                       源数据12k
0       /tmp/1.txt                         软链接文件0k

硬链接实际上是给一个文件做了一个替身,让他们都指向同一个inode(inode是每一个文件或目录的核心原数据,记录着文件名、属性、磁盘位置等信息,Linux的服务或者内核在使用文件或者目录,都是通过inode找到),说白了,就是给一个inode多做了一个替身,多做了一个克隆。
一个文件对应一个inode,可以让多个文件对应同一个inode,但是不能让多个inode对应一个文件,修改其中一个文件,另一个也会改变,但是删除其中一个文件,另一个不受影响。
硬链接不能用于目录,只能用于文件。
[root@daixuan ~]# ln /root/123.txt /tmp/daixuantest.txt             ln后没有 -s 是硬链接

[root@daixuan ~]# du -sh /root/123.txt ;du -sh /tmp/daixuantest.txt
4.0K    /root/123.txt               大小相同
4.0K    /tmp/daixuantest.txt

删除其中任何一个对另外一个没有影响。
但是硬链接有一个限制,只能在同一个分区下去操作。
[root@daixuan ~]# ln /tmp/234.txt /boot/1.txt
ln: 创建硬链接"/boot/1.txt" => "/tmp/234.txt": 无效的跨设备连接

硬链接也不能指向目录
[root@daixuan ~]# ln /root/abc /tmp/abc
ln: "/root/abc": 不允许将硬链接指向目录