Linux檔案型別與副檔名

2021-04-30 14:50:58 字數 2597 閱讀 5777

我們提過乙個概念,就是任何裝置在linux中都是檔案,不僅如此,連資料通訊的介面也由專屬檔案負責。所以,你會了解到,linux的檔案種類很多。除了前面提到的 -, d即所謂的一般檔案與目錄檔案之外,還有哪些種類的檔案呢?

檔案種類

在介紹屬性時,提到了最前面的標誌(d或 -)可以表示目錄或檔案,那就是不同的檔案種類。linux的檔案種類主要有下面這幾種:

• 普通檔案(regular file):就是一般我們訪問的檔案,由ls -al顯示出來的屬性中,第乙個屬性為 [-],例如 [-rwxrwxrwx]。另外,依照檔案的內容,又大致可以分為:

 純文字檔案(ascii):這是unix系統中最多的一種檔案型別,之所以稱為純文字檔案,是因為內容為我們可以直接讀到的資料,例如數字、字母等等。設定檔案幾乎都屬於這種檔案型別。舉例來說,使用命令「cat ~/.bashrc」就可以看到該檔案的內容(cat是將檔案內容讀出來)。

 二進位制檔案(binary):我們在gnu發展史中提過,系統其實僅認識且可以執行二進位制檔案(binary file)。linux中的可執行檔案(指令碼,文字方式的批處理檔案不算)就是這種格式的。舉例來說,命令cat就是乙個二進位制檔案。

 資料格式的檔案(data):有些程式在執行過程中,會讀取某些特定格式的檔案,那些特定格式的檔案可以稱為資料檔案(data file)。舉例來說,linux在使用者登入時,都會將登入資料記錄在 /var/log/wtmp檔案內,該檔案是乙個資料檔案,它能通過last命令讀出來。但使用cat時,會讀出亂碼。因為它是屬於一種特殊格式的檔案。

• 目錄(directory):就是目錄,第乙個屬性為 [d],例如 [drwxrwxrwx]。

• 連線檔案(link):類似windows下面的快捷方式。第乙個屬性為 [l],例如 [lrwxrwxrwx]。

• 裝置與裝置檔案(device):與系統外設及儲存等相關的一些檔案,通常都集中在 /dev目錄。通常又分為兩種:

 塊(block)裝置檔案:就是儲存資料以供系統訪問的介面裝置,簡單而言就是硬碟。例如一號硬碟的**是 /dev/hda1等檔案。第乙個屬性為 [b]。

 字元(character)裝置檔案:即串列埠的介面裝置,例如鍵盤、滑鼠等等。第乙個屬性為 [c]。

• 套接字(sockets):這類檔案通常用在網路資料連線。我們可以啟動乙個程式來監聽客戶端的要求,客戶端就可以通過套接字來進行資料通訊。第乙個屬性為 [s],最常在 /var/run目錄中看到這種檔案型別。

• 管道(fifo, pipe):fifo也是一種特殊的檔案型別,它主要的目的是,解決多個程式同時訪問乙個檔案所造成的錯誤。fifo是first-in-first-out(先進先出)的縮寫。第乙個屬性為 [p]。

那麼,使用「ls -al」命令,就可以簡單通過判斷每乙個檔案的第乙個屬性來了解這個檔案是何種型別。

除了裝置檔案是系統中很重要的檔案,最好不要隨意修改之外(通常它也不會讓你修改),另乙個比較有趣的檔案就是連線檔案。如果常常將應用程式放到桌面,就應該知道在windows下面有所謂的「快捷方式」。同樣,可以將linux 下的連線檔案簡單視為乙個檔案或目錄的快捷方式。套接字與管道檔案比較難理解,因為它們與程序(process)密切相關,到將來了解程序(第17章)之後,再回來檢視吧。此外,也可以通過man fifo及man socket來檢視系統說明。

linux副檔名

基本上,linux檔案是沒有「副檔名」的,我們知道,linux檔案能否執行,與它第一列的10個屬性有關,與檔名一點關係也沒有。這與windows不同。在windows中,能執行的副檔名通常是 .com、.exe、.bat等等,而在linux中,只要屬性中有x,例如 [-rwx-r-xr-x] 即表示這個檔案可以執行。

不過,可以執行與可執行成功是不一樣的。舉例來說,在root家目錄下的install.log是乙個純文字檔案,如果修改許可權成為 -rwxrwxrwx後,這個檔案能執行嗎?當然不行。因為它的內容根本就沒有可執行的資料。所以說,x表示這個檔案具有可執行的能力,但能不能執行成功,當然就要看該檔案的內容。

雖然副檔名沒有什麼實際的幫助,不過,由於我們仍然希望可以通過副檔名來了解該檔案是什麼,所以,通常還是會以適當的副檔名來表示該檔案是什麼型別。下面有數種常用的副檔名:

• *.sh:批處理檔案(scripts,指令碼),因為批處理檔案使用shell寫成,所以副檔名就編成 .sh。

• *z, *.tar, *.tar.gz, *.zip, *.tgz:經過打包的壓縮檔案。這是因為壓縮軟體分別為gunzip、tar等等的,根據不同的壓縮軟體而取其相關的副檔名。

• *.html, *.php:網頁相關檔案,分別表示html語法與php語法的網頁檔案。.html的檔案可使用網頁瀏覽器來直接開啟, .php的檔案則可以通過客戶端的瀏覽器來瀏覽伺服器端,以得到運算後的網頁結果。

linux檔名的限制

一般來說,在設定linux下的檔名時,最好避免一些特殊字元。例如下面這些:

* ? > < ; & ! [ ] | / ' " ` ( )

因為這些符號在命令列介面下是有特殊意義的。另外,檔名的開頭為小數點「.」時,表示這個檔案為「隱藏檔案」。同時,由於命令中常常會使用 -option之類的引數,所以最好也避免將檔名的開頭以 - 或 來命名。

linux 檔案型別與副檔名

linux檔案型別和linux檔案的檔名所代表的意義是兩個不同的概念。我們通過一般應用程式而建立的比如file.txt file.tar.gz 這些檔案雖然要用不同的程式來開啟,但放在linux檔案型別中衡量的話,大多是常規檔案 也被稱為普通檔案 我們用ls lh來檢視某個檔案的屬性,可以看到有類似...

linux下檔案型別 副檔名

在linux檔案系統中,主要有以下幾種型別的檔案 普通檔案 regular file 就是一般型別的檔案,當用 ls l 檢視某個目錄時,第乙個屬性為 的檔案就是正規檔案,或者叫普通檔案。正規檔案又可分成純文字檔案 ascii 和二進位制檔案 binary 純文字檔案是可以通過cat,more,le...

Linux 檔案型別及檔案的副檔名

1 linux檔案的副檔名 一談到檔案型別,大家就能想到windows的檔案型別,比如file.txt file.doc file.sys file.file.exe等,根據檔案的字尾就能判斷檔案的型別。但在linux乙個檔案是否能被執行,和字尾名沒有太大的關係,主要看檔案的屬性有關。但我們了解一下...