Linux檔案型別釋出啦!

大雄45發表於2023-04-27
導讀 在windows下面是透過檔案的副檔名來區分檔案型別的,但是在 中卻不是這兒樣的。在linux中就沒有所謂的副檔名,一個linux檔案能不能被執行時取決於它的屬性中是否有x,與檔名一點關係都沒有。一般我們所看到的副檔名只是為了給我們使用者自己看的。
一、Linux檔案型別是如何進行區分的呢?

提到檔案的話就不得不先來簡單瞭解一下inode。
inode:索引結點,用來存放檔案的基本資訊。
inode是unix/linux作業系統中的一種資料結構,本質上是一個結構體,裡面定義了一些變數,這些變數用來記錄與檔案相關的資訊。在作業系統建立檔案系統的時候就會建立大量的inode。
inode這個結構體包含以下資訊:
1、inode編號
2、用來識別檔案型別,以及用於stat C函式的模式資訊
3、檔案的連結數
4、屬主的UID
5、屬主的組的ID(GID)
6、檔案的大小
7、檔案所使用的磁碟塊的實際數目。
8、最近一次修改的時間
9、最近一次訪問的時間
10、最近一次更改的時間
可見,除了檔名以及檔案內容以外,inode包含檔案的所有資訊,所以說檔名在linux下面是沒有多大作用的。一般我們對某個檔案進行操作是,是先找這個檔案所連線的inode,然後用inode編號對檔案進行操作,但是當我們知道inode編號的時候是不能得到檔名的。

二、linux下的檔案型別
1.普通文字: ( regular file)以”-“開頭。

Linux檔案型別釋出啦!Linux檔案型別釋出啦!

可以看到上面的檔案屬性中,都是以”-“開頭的,這個”-“就表示它是一個普通檔案。

linux下面的普通文字又包括一下三種:
1.1、純文字文件:
這是linux中最多的一種檔案型別,稱為純文字文件,我們是可以直接讀到其中的資料。

1.2、二進位制檔案:
linux中的可執行檔案就是這種格式的。

1.3、資料格式檔案:
有些程式在執行的過程中會讀取某些特定格式的檔案,這些特定格式的檔案又稱為資料檔案,使用cat看到的都是亂碼,因為它屬於特殊格式的檔案。

2、目錄:(directory)以”d”開頭。

在linux下面的一切都是以檔案的形式存在的,所以目錄就屬於目錄檔案。

Linux檔案型別釋出啦!Linux檔案型別釋出啦!

可以看到這些檔案的屬性中是以”d”開頭的,就表示它是一個目錄檔案。

3、連線檔案:(link)以”l”開頭的檔案

Linux檔案型別釋出啦!Linux檔案型別釋出啦!

可以看到這些檔案的屬性中是以”l”開頭表示它們是連結檔案。

4、裝置和裝置檔案:

裝置檔案分為塊裝置檔案額字元裝置檔案。我們進入/dev目錄就會看好多這種檔案。
字元裝置檔案:以”c”開頭的檔案,就是一些串列埠的介面檔案,比如鍵盤、滑鼠等。

Linux檔案型別釋出啦!Linux檔案型別釋出啦!

可以看到這些檔案的屬性中是以”c”開頭表示它們是字元裝置檔案。

塊裝置檔案:以”b”開頭的檔案,就是一些儲存檔案,比如硬碟、軟盤等。

Linux檔案型別釋出啦!Linux檔案型別釋出啦!

可以看到這些檔案的屬性中是以”b”開頭表示它們是塊裝置檔案。

5、套接字:(sockets)以”s”開頭的檔案。

套接字檔案還被稱為資料介面檔案,這種型別的檔案通常被用在網路上的資料連線。我們可以啟動一個程式來監聽客戶端的請求,而客戶端就可以透過資料介面檔案來進行資料通訊。

Linux檔案型別釋出啦!Linux檔案型別釋出啦!

可以看到這個檔案的屬性中是以”s”開頭表示它們是套接字檔案。

6、管道:(FIFO,pipe)以”p”開頭的檔案。

管道檔案也是一種特殊的檔案型別也叫作資料輸送檔案,它主要的目的是解決多個程式同時訪問一個檔案所造成的錯誤問題。解決的方法就是FIFO。
管道檔案的屬性是以”p”開頭的。

原文來自:


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2945087/,如需轉載,請註明出處,否則將追究法律責任。

相關文章