初識文件系統和軟硬鏈接

什么是文件系統?

        磁盤分區以后必須設置磁盤的文件系統才可以正式使用,文件系統定義了文件存儲的類型,也就是這個文件要按照怎樣的方式存入磁盤分區。

        linux中文件系統的類型:ext3ext4、xfs

        windows中的文件系統類型:fat32、ntfsextfat

        說到存儲方式,就要聊一聊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

(0)
whbwhb
上一篇 2017-07-19
下一篇 2017-07-20

相關推薦

  • php-fpm

    1.安裝 mariadb 服務 修改配置文件 2.musql 安全加強 3.安裝 php-fpm php-mysql php-mbstring php-mcrypt 服務 修改配置文件 4.安裝httpd服務 加虛擬主機配置文件 5.測試php網頁 6.安裝myadmin包及測試

    2017-06-04
  • ansible的用法

    ansible 每臺主機擁有不同的功能,可能同時是http服務器,php-fpm的客戶端,共享存儲的客戶端等,這些功能是單獨定義的,不同主機需要的功能各不相同 應確保目標主機的狀態為事先給他定義的目標狀態 使目標主機達到目標狀態有兩種方法      agentless:由服務端主機通過ssh連接到目標主機執行命令,客戶端不需要額…

    Linux干貨 2016-11-11
  • 高級文件系統管理2

    五、btrfs文件系統     技術預覽版     Btrfs (B-tree, Butter FS, Better FS), GPL, Oracle,2007, CoW     核心特性:     …

    Linux干貨 2016-09-09
  • Python函數式編程指南:目錄和參考

    目錄: 概述 這一篇簡要地描述了函數式編程和一些相關的概念。 函數 這一篇展示了關于函數可能不常用到的部分特征并嘗試引導諸位使用函數式的思維解決問題,并介紹了諸多有用的內建函數。 迭代器 這一篇介紹了迭代器以及Python對迭代器的語法級的支持,還包括了內置模塊itertools的介紹。 生成器 這一篇介紹了自定義的迭代器——生成器,并展示了生成器的用途和使…

    Linux干貨 2015-03-11
  • Linux中的軟鏈接/硬鏈接

    Linux鏈接概念Linux鏈接分兩種,一種被稱為硬鏈接(Hard Link),另一種被稱為符號鏈接(Symbolic Link)。默認情況下,ln命令產生硬鏈接。 【硬連接】硬連接指通過索引節點來進行連接。在Linux的文件系統中,保存在磁盤分區中的文件不管是什么類型都給它分配一個編號,稱為索引節點號(Inode Index)。在Linux中,多個文件名指…

    Linux干貨 2016-10-20
  • 馬哥教育網絡班21期第9周課程練習

    1、寫一個腳本,判斷當前系統上所有用戶的shell是否為可登錄shell(即用戶的shell不是/sbin/nologin);分別這兩類用戶的個數;通過字符串比較來實現; #!/bin/bash # declare -i nologin_user;other_user all_users=`awk -F':'…

    Linux干貨 2016-09-19
欧美性久久久久