什么是文件系統?
磁盤分區以后必須設置磁盤的文件系統才可以正式使用,文件系統定義了文件存儲的類型,也就是這個文件要按照怎樣的方式存入磁盤分區。
linux中文件系統的類型:ext3、ext4、xfs
windows中的文件系統類型:fat32、ntfs、extfat
說到存儲方式,就要聊一聊inode索引和block塊了,為了提高資源的利用率,系統把分好的磁盤分區,又劃分了很多個有序的block塊,存儲容量2K 4K 8K 16K不等,根據文件的大小按需分配。如果文件很大,就會占用多個block塊,這些block塊會記錄在對應的inode號中。目錄怎么找到這些數據塊呢?目錄其實是一個特殊的文件,里面存放著文件的權限、所屬人、所屬組、Inode、文件名等信息。目錄通過文件名和inode映射,找到inode指向的所有數據塊
軟硬鏈接的敘述
Inode可以和多個文件名進行映射,這樣文件的有效路徑就有多條,這多條有效路徑就叫做文件的硬鏈接。你創建文件時起的那個文件名,其實也是硬鏈接。刪除個別硬鏈接不會影響其他硬鏈接對源文件內容的訪問,但如果所有硬鏈接都被刪除,inode就會被釋放,block也將會被新來的數據覆蓋掉(一個文件至少要有一條硬鏈接)
軟連接:軟鏈接存儲的是一條可以訪問到源文件的有效路徑,通過該路徑訪問到源文件所在目錄。再由inode找到對應的文件內容。因為軟連接存儲的是一條硬鏈接的路徑,所以它可以跨分區,硬鏈接是通過inode進行訪問的,這就限制了它必須和文件內容在一個磁盤分區(每個分區都有自己獨立的inode號)
軟鏈接優點:可以跨分區,就像快捷方式一樣方便
缺點: 鏈接的路徑一旦消失,軟鏈接就會失效
硬鏈接優點:可以建多條有效路徑,來提高數據的安全性(防止誤刪)
缺點:不可以跨分區,訪問有局限性
下面讓我們以真實的環境去看看軟硬鏈接長什么樣子
硬盤狀態
[root@localhost app]#df / /app
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda2 48803552 4391280 44412272
9% /
/dev/sda3 48803552 32948
48770604 1% /app
跨分區實現軟鏈接
[root@localhost app]#pwd
/root
[root@localhost app]#echo welcome
to mageEdu > /app/file01 將結果重定向至file01文件
[root@localhost app]#ln -s
/app/file01 file01 ./file01作為/app/file01 的軟鏈接
[root@localhost app]#ll file01 查看鏈接狀態
lrwxrwxrwx. 1 root root 11 Jul 20 14:45
file01 -> /app/file01
[root@localhost app]#cat
/root/file01 通過軟鏈接訪問文件內容
welcome to mageEdu
外鏈接的搭建
[root@localhost app]#cd /app
[root@localhost app]#ls
file01
[root@localhost app]#mkdir whb
[root@localhost app]#tree
.
├── file01
└── whb
[root@localhost app]#cd whb
[root@localhost app]#ln ../file01
f1
[root@localhost app]#ls
f1
[root@localhost app]#ls -li f1 通過查看硬鏈接和源文件狀態
67 -rw-r–r–. 2 root root 19 Jul 20 14:44
f1 會發現它們inode號是一樣的
[root@localhost app]#cd ..
[root@localhost app]#ls -li
file01
67 -rw-r–r–. 2 root root 19 Jul 20 14:44
file01
[root@localhost app]#cat f1 通過硬鏈接訪問文件內容
welcome to mageEdu
測試
1、 刪除源文件不會影響其他硬鏈接訪問文件內容,而軟鏈接失效
原創文章,作者:whb,如若轉載,請注明出處:http://www.www58058.com/81854