欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

Linux文件類型有什么?如何修改文件權限?軟鏈接和硬鏈接的區別是什么?

謝彥文2年前10瀏覽0評論

題主一共有三個問題:

Linux文件類型有什么?如何修改文件權限?軟鏈接和硬鏈接的區別是什么?

我想第一個問題想要問的是Linux的文件系統類型是什么?因為如果說單個文件本身的類型的話,不是由Linux來決定的,而是由創建這個文件的應用程序決定的,跟windows一樣,.txt

.pdf

.doc

.xls

......

等等....無法窮舉,如果是Linux文件系統的類型的話,這個問題就有意義了,因為文件系統是由操作系統本身決定的,下面我來一一回答這三個問題:

第一個問題,Linux的文件系統類型有什么?

首先,我們來說一下我們如何用最簡單的查看一個Linux的文件系統類型,假設你現在已經登錄到了一個臺Linux系統(比如CentOS/Ubuntu等),并打開了一個命令行窗口,那么只要用一個簡單命令即可:mout,就這個命令

紅線標注的地方就是Linux的文件系統類型,叫做ext4,啥意思???它的中文翻譯是第四代拓展文件系統,英文原文是Fourthextendedfilesystem,縮寫成ext4.

為什么突然出來一個ext4第四代呢?有1,2,3代嗎?有!

Linux發展到今天一共經歷了4代文件系統的更替,當然是一代比一代好。

第一代ext,1992年4月發布,居于Unix的文件系統做了一些優化,主要還是采用Unix文件系統的元數據結構,因為支持的文件系統大小不是太理想,現在已經基本上不用。

第二代ext2,1993年發布,它在一代的基礎上做了增強,文件系統支持大到2TB,在Linux的內核發布到2.6的時候,它最大可以支持32TB的大小,文件系統也比較高效穩定,所以使用了很長一段時間,弱點是非正常關機導致文件系統損壞(幾率非常大)。

第三代ext3,從ext2發展而來,主要加入了日志功能,高可用性進一步提高:

高可用性:系統使用了ext3文件系統后,即使在非正常關機后,文件系統也不容易損壞。

數據的完整性:避免了意外宕機對文件系統的破壞。

文件系統的速度:ext3的日志功能對磁盤的驅動器讀寫頭進行了算法優化,性能有所提升

兼容性:由ext2文件系統轉換成ext3文件系統非常容易

第四代ext4,現行文件系統類型,其實是ext3的改進版,在ext3的基礎上提供更佳的性能和可靠性,也提供了更多的功能

改進一,單個文件可以達到16TB,而ext3單個文件最多2TB。

改進二,無限多個子目錄支持,而ext3最多只能支持約32000個子目錄,有人說32000個夠用了啊,是的,對你夠但對工程應用遠遠不夠。

改進三,采用現代文件系統的extents理念,每個extent為一組連續數據塊使得讀寫更加流暢順滑,提高性能。

改進四,多塊分配(multiblockallocator),一次程序調用可以分配多個數據塊,簡化了調用控制流程,效率更高。

改進五,在線數據整理.....

......

所以它是現行linux文件系統,大數據系統hadoop的最最底層也是使用ext4作為物理存儲,當然它還加上了軟件定義存儲的理念,所以可以無限拓展。

關于Linux的文件系統類型大概是這些,還有其他的方向等待其他的答主補充。


第二個問題,如何修改文件系統的權限?

很簡單,登陸到命令行窗口

這里我建了一個目錄叫做demo,和一個文件叫做

demofile.txt

,用ls-l命令查看他的權限,我們可以看到有-rw-r--r--的標記,意思是目前這個文件的權限是:文件擁有者(Owner)擁有讀寫的權限rw-,跟Owner同一個工作組的成員只有只讀的權限r--,其他用戶也只有只讀的權限r--,那么下面我們來改變它的權限分配,給同工作組的成員也加上可寫的權限,因為他們有可能要跟我一起共同編輯這個文件,做法如下:

chmodg=rwdemofile.txt

,就是這么簡單

g代表group就是組的意思,chmod是專門用來改變文件和目錄權限的命令,g=rw就是讓組成員擁有rw即讀寫的權限,另外還可以把執行權限賦給組成員,這樣做:chmodg=rwxdemofile.txt

這樣做之后我們查看文件發現組的權限變成了rwx同時文件變綠了,x代表這個文件是可以被執行的,當然執行什么內容要自己往文件里面添加。

比如我們想要讓其他用戶也擁有讀取和執行的權限,這樣做:chmodo=rxdemofile.txt,o代表others的意思。

用同樣的方法可以改變其他權限,比如改變自己的權限,給自己添加該文件的可運行權限:

chmodu=rwx

demofile.txt

,這樣自己也有運行權限了。

改變文件的權限基本上就是這么簡單,就一個命令chmod.

第三個問題,軟鏈接和硬鏈接的區別是什么?

為了說清楚這個事情我們最好還是動手建立一個軟連接和一個硬鏈接吧,憑空說很抽象,創建軟連接和硬鏈接的方法如下:

圖中我們看到,當我們用ls-li查看目錄下的文件時,我們發現很有意思的事情,我們發現文件file1的編號和硬鏈接名稱f1的編號是一樣的是吧?而軟連接f2跟file1的編號是不一樣的,差別就在這里:

這個編號就是linux文件系統里面大名鼎鼎的inode,中文可以翻譯成索引節點。

那差別在什么地方呢?是這樣的,現在f1是file1的硬鏈接,從文件系統的角度看,f1和file1是完全對等的,相當于同一個數據塊有兩個不同的文件名稱,他們都指向系統中的同一個存儲塊,你這個時候如果刪掉file1的話,f1同樣可以訪問,你刪掉f1的話file1也同樣可以訪問,東西都還在,不影響。但軟連接就不一樣了,如果你這個時候刪除file1那么軟連接f2就不可訪問了,也就是它找不著數據塊了,變空了。

Linux里面對于每個文件都給了一個唯一編號inodeindex,但允許一個文件存在兩個或多個不同的名字,指向同一個存儲空間,他們是完全平等的,互不干擾。而Linux系統在真正刪除一個文件的磁盤內容的時候它會判斷是否還有使用同樣inode的文件名指向這個數據塊,如果還有,數據塊就不會被刪除,如果沒有了就真刪除。

軟連接簡單的可以理解成只是原文件的一個快捷方式,在創建軟連接的同時會創建一個與源文件不同的inode,它是通過源文件的其中一個文件名間接找到數據塊的,相當于f2-->file1-->datablock,現在你刪除了file1這個文件名,那么連接就從中間斷開了,快捷方式就沒有地方可以指向了,所以就空了,差別就在這里。

希望能幫到你更好的理解linux的文件系統。

補充一句人話:

硬鏈接是每個連接名(可以理解為文件名)直接指向數據塊本身,所以他們擁有相同的inode編號。

軟連接是通過數據塊的其中一個文件名作為中介轉連接到數據塊的,它跟數據塊本身沒有直接關聯,所以使用不同的inode編號,區別在這。

我發現工作中很多系統管理員和開發人員都沒有真正的理解這二者之間的差別。