溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

linux 下的軟連接和硬鏈接

發(fā)布時間:2020-07-26 14:41:54 來源:網(wǎng)絡(luò) 閱讀:456 作者:onecan2009 欄目:系統(tǒng)運維
  1. linux下創(chuàng)建硬鏈接相當于對源文件的拷貝,生成的新文件和源文件的inode值時一致的,當源文件刪除后,硬鏈接不會失效
  2. 軟連接類似于源文件的快捷方式,兩者的inode不同,它里面保存的時源文件的路徑信息,當源文件的刪除消失后,軟連接失效,此時如果在新建源文件,則軟鏈接繼續(xù)生效

測試一下
實驗環(huán)境:ubuntu 14.04 kernel:3.13.0-24-generic

1. 新建一個測試文件
touch test
使用stat或者ls -i選項去查看test的inode值

```
ubuntu@ubuntu-virtual-machine:~/work/shell/file$ stat test
文件:"test"
大?。?            塊:0          IO 塊:4096   普通空文件
設(shè)備:801h/2049d   Inode:4208823     硬鏈接:1
權(quán)限:(0664/-rw-rw-r--)  Uid:( 1000/  ubuntu)   Gid:( 1000/  ubuntu)
最近訪問:2018-03-06 15:51:01.689080893 +0800
最近更改:2018-03-06 15:51:01.689080893 +0800
最近改動:2018-03-06 15:51:01.689080893 +0800
創(chuàng)建時間:-

```
inode 值是    Inode:4208823 

2.  創(chuàng)建硬鏈接

```
    ubuntu@ubuntu-virtual-machine:~/work/shell/file$ ln test hard_test
    ubuntu@ubuntu-virtual-machine:~/work/shell/file$ stat hard_test 
    文件:"hard_test"
    大?。?            塊:0          IO 塊:4096   普通空文件
設(shè)備:801h/2049d   Inode:4208823     硬鏈接:2
權(quán)限:(0664/-rw-rw-r--)  Uid:( 1000/  ubuntu)   Gid:( 1000/  ubuntu)
最近訪問:2018-03-06 15:51:01.689080893 +0800
最近更改:2018-03-06 15:51:01.689080893 +0800
最近改動:2018-03-06 15:53:54.857425605 +0800
創(chuàng)建時間:-

```
可以看出inode 相同 
3.  創(chuàng)建軟連接

```
ubuntu@ubuntu-virtual-machine:~/work/shell/file$ ln -s test soft_test
ubuntu@ubuntu-virtual-machine:~/work/shell/file$ stat soft_test 

文件:"soft_test" -> "test"
大?。? 塊:0 IO 塊:4096 符號鏈接
設(shè)備:801h/2049d Inode:4208824 硬鏈接:1
權(quán)限:(0777/lrwxrwxrwx) Uid:( 1000/ ubuntu) Gid:( 1000/ ubuntu)
最近訪問:2018-03-06 15:56:35.129543502 +0800
最近更改:2018-03-06 15:55:04.201563628 +0800
最近改動:2018-03-06 15:55:04.201563628 +0800
創(chuàng)建時間:-

```
可以看出,inode不同,軟連接和源文件是兩個不同的文件,只是它其中保存的是源文件的路徑
現(xiàn)在在源文件中寫入內(nèi)容,觀察三個的文件的變化
```
ubuntu@ubuntu-virtual-machine:~/work/shell/file$ echo "123" >test
ubuntu@ubuntu-virtual-machine:~/work/shell/file$ 
ubuntu@ubuntu-virtual-machine:~/work/shell/file$ cat test
123
ubuntu@ubuntu-virtual-machine:~/work/shell/file$ cat soft_test 
123
ubuntu@ubuntu-virtual-machine:~/work/shell/file$ cat hard_test 
123
ubuntu@ubuntu-virtual-machine:~/work/shell/file$ echo "456" >>hard_test 
ubuntu@ubuntu-virtual-machine:~/work/shell/file$ cat hard_test 
123
456
ubuntu@ubuntu-virtual-machine:~/work/shell/file$ cat test 
123
456
ubuntu@ubuntu-virtual-machine:~/work/shell/file$ cat soft_testtest 
cat: soft_testtest: 沒有那個文件或目錄
ubuntu@ubuntu-virtual-machine:~/work/shell/file$ cat soft_test
123
456

```

4. 刪除源文件觀察

```
ubuntu@ubuntu-virtual-machine:~/work/shell/file$ rm test
ubuntu@ubuntu-virtual-machine:~/work/shell/file$ ll
總用量 12
drwxrwxr-x 2 ubuntu ubuntu 4096  3月  6 16:01 ./
drwxrwxr-x 3 ubuntu ubuntu 4096  3月  6 15:25 ../
-rw-rw-r-- 1 ubuntu ubuntu   12  3月  6 16:00 hard_test
lrwxrwxrwx 1 ubuntu ubuntu    4  3月  6 15:55 soft_test -> test
ubuntu@ubuntu-virtual-machine:~/work/shell/file$ cat soft_test 
cat: soft_test: 沒有那個文件或目錄
ubuntu@ubuntu-virtual-machine:~/work/shell/file$ cat hard_test 
123
456
789
```
可以看出軟連接失效,但是硬鏈接不受影響
  1. linux 有個專門的指令 readlink,這個指令是得到軟連接的地址,比如上例中就可以得到軟鏈接指向的源文件的地址
ubuntu@ubuntu-virtual-machine:~/work/shell/file$ readlink soft_test 
test
向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI