2021-02-07 分類: 網(wǎng)站建設(shè)
我們現(xiàn)代的操作系統(tǒng)需要防止程序崩潰導(dǎo)致信息丟失,需要將信息存儲(chǔ)在文件之中。而且文件能夠被多個(gè)進(jìn)程同時(shí)讀取。在Linux中所以的資源,外設(shè)都抽象成了文件,所以就有了Linux中“一切皆文件”的特性。當(dāng)然有文件,肯定是不夠的,總不能把所有的文件放在一起管理,實(shí)在是太亂,不易管理維護(hù)。Linux就引入了目錄的概念,在Windows中可以稱之為文件夾。目錄的引入就會(huì)讓Linux的根文件系統(tǒng)外觀上變成了一個(gè)層次分明的目錄樹。如下圖:
使用什么命令可以查看inode號(hào)?
可以使用stat和ls -i 命令查看,如下圖所示:
什么是硬鏈接?
硬鏈接是指通過索引節(jié)點(diǎn)來進(jìn)行連接。也就是存在多個(gè)文件名指向同一個(gè)inode。這樣就可以將重要的文件建立硬鏈接,來防止“誤刪”的操作。
命令:
- link oldfile newfile
可以創(chuàng)建硬鏈接。硬鏈接的inode是相同的,但是文件名不同,所以它有一些特性:
例如:
- # ls -li
- total 0
- // 只能對(duì)已存在的文件創(chuàng)建硬連接
- # link test.file test_hard.link
- link: cannot create link `test_hard.link' to `test.file': No such file or directory
- # echo "This is an original file" > test.file
- # cat test.file
- This is an original file
- # stat test.file
- File: `test.file'
- Size: 25 Blocks: 8 IO Block: 4096 regular file
- Device: 807h/2055d Inode: 660650 Links: 2
- Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
- ...
- // 文件有相同的 inode 號(hào)以及 data block
- # link test.file test_hard.link | ls -li
- total 8
- 660650 -rw-r--r-- 2 root root 25 Sep 1 17:44 test_hard.link
- 660650 -rw-r--r-- 2 root root 25 Sep 1 17:44 test.file
- // 不能交叉文件系統(tǒng)
- # ln /dev/input/event5 /root/bfile.txt
- ln: failed to create test_hard link `/root/bfile.txt' => `/dev/input/event5':
- Invalid cross-device link
- // 不能對(duì)目錄進(jìn)行創(chuàng)建硬連接
- # mkdir -p test.dir/test
- # ln test.dir/ test_hardlink.dir
- ln: `test.dir/': test_hard link not allowed for directory
- # ls -iF
- 660650 test_hard.link 657948 test.dir/ 660650 test.file
具體的解釋可以參考硬鏈接的5點(diǎn)特性。
什么是軟鏈接?
軟連接就和硬鏈接完全不同,軟連接是用戶數(shù)據(jù)(data blocks)中記錄的是另一個(gè)文件的路徑名的指向??梢岳斫鉃檐涍B接其實(shí)就是一個(gè)普通的文件,只是他的內(nèi)容非常的特殊。所以軟連接有他自己的inode號(hào)以及data blocks。那我總結(jié)下軟連接的特性:
下圖展示下軟鏈接的訪問過程:
例如:
- # ls -li
- total 0
- // 可對(duì)不存在的文件創(chuàng)建軟鏈接
- # ln -s test.file test_soft.link
- # ls -liF
- total 0
- 789467 lrwxrwxrwx 1 root root 8 Sep 1 18:00 test_soft.link -> test.file
- // 由于被指向的文件不存在,此時(shí)的軟鏈接 test_soft.link 就是死鏈接
- # cat test_soft.link
- cat: test_soft.link: No such file or directory
- // 創(chuàng)建被指向的文件 test.file,test_soft.link 恢復(fù)成正常的軟鏈接
- # echo "This is an original file_A" >> test.file
- # cat test_soft.link
- This is an original file_A
- // 對(duì)不存在的目錄創(chuàng)建軟鏈接
- # ln -s test.dir test_soft.link.dir
- # mkdir -p test.dir/test
- # tree . -F --inodes
- .
- ├── [ 789497] test.dir/
- │ └── [ 789498] test/
- ├── [ 789495] test.file
- ├── [ 789495] test_soft.link -> test.file
- └── [ 789497] test_soft.link.dir -> test.dir/
本文標(biāo)題:怎樣理解Linux的軟連接和硬鏈接?
標(biāo)題網(wǎng)址:http://www.rwnh.cn/news/99623.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、電子商務(wù)、App設(shè)計(jì)、網(wǎng)站設(shè)計(jì)、網(wǎng)站內(nèi)鏈、外貿(mào)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容