软链接和硬链接
程序员文章站
2024-03-07 17:42:57
...
讲解
区别 | 含义 |
---|---|
软链接:快捷方式 | 记录源文件的位置 |
硬链接:超市的前后门 | 在同一个分区,不同文件的inode号码相同 互为硬链接 |
ln 创建硬链接
ln -s 创建软链接
ll -i 显示inode号,类似于身份证
[aaa@qq.com ~ 75]# ll -i
total 8
33575005 -rw-r--r--. 1 root root 1026 Aug 3 23:42 1.txt
33574979 -rw-------. 1 root root 1264 Jul 22 15:19 anaconda-ks.cfg
# 创建一个硬链接,然后查看链接数2个,inode号是相同的,代表互为硬链接
[aaa@qq.com ~ 76]# ln 1.txt 2.txt
[aaa@qq.com ~ 77]# ll -i
total 12
33575005 -rw-r--r--. 2 root root 1026 Aug 3 23:42 1.txt
33575005 -rw-r--r--. 2 root root 1026 Aug 3 23:42 2.txt
33574979 -rw-------. 1 root root 1264 Jul 22 15:19 anaconda-ks.cfg
创建一个软链接,第三行创建的,前面是软链接,后面箭头指向的是源文件
[aaa@qq.com ~ 78]# ln -s 1.txt 3.txt
[aaa@qq.com ~ 79]# ll -i
total 12
33575005 -rw-r--r--. 2 root root 1026 Aug 3 23:42 1.txt
33575005 -rw-r--r--. 2 root root 1026 Aug 3 23:42 2.txt
33574983 lrwxrwxrwx. 1 root root 5 Aug 4 00:49 3.txt -> 1.txt
33574979 -rw-------. 1 root root 1264 Jul 22 15:19 anaconda-ks.cfg
链接目录
1、软链接:最常用,可以对目录使用
2、硬链接:只能对文件创建,不能对目录创建,可以预防误删除
创建目录查看硬链接为2
目录本身都有两个隐藏的目录 . 和 …
[aaa@qq.com ~ 80]# mkdir /test
[aaa@qq.com / 99]# ll -di test # 刚创建完目录会显示两个硬链接
819650 drwxr-xr-x. 2 root root 20 Aug 4 00:59 test
[aaa@qq.com / 98]# ll -di test ./test #一个是本身目录,一个是在目录里头的点,当前目录
819650 drwxr-xr-x. 2 root root 20 Aug 4 00:59 test
819650 drwxr-xr-x. 2 root root 20 Aug 4 00:59 ./test
[aaa@qq.com test 101]# mkdir ceshi
[aaa@qq.com test 102]# ll
total 0
-rw-r--r--. 1 root root 0 Aug 4 00:59 11sdas
drwxr-xr-x. 2 root root 6 Aug 4 01:19 ceshi
[aaa@qq.com test 103]# ll -di /test
819650 drwxr-xr-x. 3 root root 33 Aug 4 01:19 /test
在目录再创建一个目录查看硬链接为3
因为新创建的目录都…是上一级目录
可以从下级目录中cd …返回到/test目录,所以硬链接为三
[aaa@qq.com test 102]# ll
total 0
-rw-r--r--. 1 root root 0 Aug 4 00:59 11sdas
drwxr-xr-x. 2 root root 6 Aug 4 01:19 ceshi
[aaa@qq.com test 103]# ll -di /test
819650 drwxr-xr-x. 3 root root 33 Aug 4 01:19 /test
#切换到test的下级目录ceshi中
[aaa@qq.com test 104]# cd /test
[aaa@qq.com test 105]# cd ceshi/
[aaa@qq.com ceshi 106]# ll -di
17081946 drwxr-xr-x. 2 root root 6 Aug 4 01:19 .
#cd ..返回上一级目录,就是到了test目录下,所以算硬链接
[aaa@qq.com ceshi 107]# cd ..
[aaa@qq.com test 108]# ll -di test
ls: cannot access test: No such file or directory
[aaa@qq.com test 109]# ll -di /test
819650 drwxr-xr-x. 3 root root 33 Aug 4 01:19 /test
软链接创建目录
[aaa@qq.com ~ 81]# ln -s /test/ /test111
[aaa@qq.com ~ 82]# cd /
[aaa@qq.com / 83]# ll -i
total 16
95 lrwxrwxrwx. 1 root root 7 Jul 22 15:16 bin -> usr/bin
64 dr-xr-xr-x. 4 root root 4096 Jul 22 15:22 boot
3 drwxr-xr-x. 20 root root 3220 Aug 1 08:27 dev
16777281 drwxr-xr-x. 78 root root 8192 Aug 4 00:00 etc
50331740 drwxr-xr-x. 2 root root 6 Nov 5 2016 home
98 lrwxrwxrwx. 1 root root 7 Jul 22 15:16 lib -> usr/lib
82 lrwxrwxrwx. 1 root root 9 Jul 22 15:16 lib64 -> usr/lib64
83 drwxr-xr-x. 2 root root 6 Nov 5 2016 media
16778161 drwxr-xr-x. 3 root root 19 Jul 22 16:05 mnt
33624489 drwxr-xr-x. 2 root root 6 Nov 5 2016 opt
1 dr-xr-xr-x. 107 root root 0 Aug 1 08:27 proc
33574977 dr-xr-x---. 2 root root 190 Aug 4 00:49 root
8117 drwxr-xr-x. 22 root root 660 Aug 4 00:00 run
99 lrwxrwxrwx. 1 root root 8 Jul 22 15:16 sbin -> usr/sbin
50331741 drwxr-xr-x. 2 root root 6 Nov 5 2016 srv
1 dr-xr-xr-x. 13 root root 0 Aug 1 08:27 sys
819650 drwxr-xr-x. 2 root root 6 Aug 4 00:58 test
819651 lrwxrwxrwx. 1 root root 6 Aug 4 00:59 test111 -> /test/
16777288 drwxrwxrwt. 8 root root 261 Aug 4 00:00 tmp
33624464 drwxr-xr-x. 13 root root 155 Jul 22 15:16 usr
50331713 drwxr-xr-x. 19 root root 267 Aug 1 08:27 var
[aaa@qq.com / 84]# cd test111/
[aaa@qq.com test111 85]# touch 11sdas
[aaa@qq.com test111 86]# ll
total 0
-rw-r--r--. 1 root root 0 Aug 4 00:59 11sdas
[aaa@qq.com test111 87]# cd ../test
[aaa@qq.com test 88]# ll
total 0
-rw-r--r--. 1 root root 0 Aug 4 00:59 11sdas
硬链接创建目录
[aaa@qq.com test 89]# cd /
[aaa@qq.com / 90]# ln test /test333
ln: ‘test’: hard link not allowed for directory
删除连接影响
1、删除软链接,没影响,但是删除软链接的源文件,所有软链接都无法使用,红底白字闪烁
2、删除硬链接无影响,删除所有的硬链接,文件无法访问(文件被删除)
上一篇: PHP实现上传多文件示例代码