每天乙個Linux命令 21 檔案型別與副檔名

2021-07-30 07:27:08 字數 2833 閱讀 7409

檔案型別和檔名是兩個不同的概念。通過一般應用程式建立的檔案,比如file.txt、file.tar.gz ,這些雖然要用不同的程式來開啟,但放在linux檔案型別中,大多是常規檔案(也被稱為普通檔案)。

我們用ls -lh來檢視某個檔案的屬性,可以看到有類似-rwxrwxrwx,值得注意的是第乙個符號是 - ,這樣的檔案在linux中就是普通檔案。這些檔案一般是用一些相關的應用程式建立,比如影象工具、文件工具、歸檔工具… …. 或 cp工具等,用rm刪除這類檔案。依照檔案內容,普通檔案大致可分為:

純文字檔案(ascii)

這是linux系統中最多的一種檔案型別,其內容為我們人類可直接讀取的資料,例如數字、字母等,幾乎所有設定的檔案都屬於這種檔案型別。例如,你可以用cat ~/.bashrc檢視該檔案內容。

二進位制檔案(binary)

linux系統僅識別二進位制檔案(binary file),可執行檔案(scripts, 文字型批處理檔案不算)就是這種格式的檔案,cat就是乙個binary file。

資料格式檔案(data)

在執行的過程中,有些程式會讀取某些特定格式的檔案,這被稱為資料檔案 (data file)。舉例來說,我們在登入linux時,系統會將登入的資料記錄在 /var/log/wtmp,該檔案是乙個data file,我們通過last讀出來。但是使用cat時,會出現亂碼,這是因為它是一種特殊格式的檔案。

當我們在某個目錄下執行ls -l,可以看到類似drwxr-xr-x的檔案,這就是目錄,它的第乙個字元是d。我們用mkdir 建立目錄 ,用cp複製目錄,用rm或rmdir刪除目錄。

當進入/dev目錄,列出檔案:

# ls -al /dev/tty

crw-rw-rw- 1 root tty 5, 0

11-03

15:11 /dev/tty

# ls -la /dev/sda1

brw-r----- 1 root disk 8, 1

11-03

07:11 /dev/sda1

我們看到/dev/tty的屬性是 crw-rw-rw- ,注意前面第乙個字元是 c ,這表示字元裝置檔案。比如貓等串列埠裝置。我們看到 /dev/sda1 的屬性是 brw-r—– ,注意前面的第乙個字元是b,這表示塊裝置,比如硬碟,光碟機等裝置。

這個種類的檔案,是用mknode來建立,用rm來刪除。目前在最新的linux發行版本中,我們一般不用自己來建立裝置檔案,因為這些檔案是和核心相關聯的。

區塊(block)裝置檔案

提供系統隨機訪問的介面裝置,如硬碟、軟盤等。你可以隨機地在硬碟的不同區塊讀寫,這種裝置就是組裝置。你可以用`ls -l檢視/dev/sda下的檔案,會發現第乙個屬性為[b]。

字元(character)裝置檔案:

即一些串列埠的介面裝置, 例如鍵盤、滑鼠等。這些裝置的特點是一次性讀取,不能截斷輸出。舉例來說,你不可能讓滑鼠跳到另乙個畫面,而是滑動到另乙個地方。你可以用`ls -l檢視/dev/sda下的檔案,會發現第乙個屬性為[c]。

資料介面檔案(或者:套接字檔案),這類檔案通常被用於網路資料的承接。我們可以啟動乙個程式來監聽客戶端,通過socket,客戶端可以進行資料交換。在/var/run目錄下,我們看到這種檔案型別,它的第乙個屬性為 [ s ]

當我們啟動mysql服務時,會產生乙個mysql.sock檔案。

# ls -lh /var/lib/mysql/mysql.sock 

srwxrwxrwx 1 mysql mysql 0

04-19

11:12 /var/lib/mysql/mysql.sock

它的第乙個字元是 s。

當我們檢視檔案屬性時,會看到類似 lrwxrwxrwx的屬性,屬性的第乙個字元是l,這類檔案是鏈結檔案。通過ln -s 原始檔 新檔案。軟鏈結檔案與windows作業系統中的快捷方式有點相似。

# ls -lh log2012.log

-rw-r--r-- 1 root root 296k 11-13

06:03 log2012.log

# ln -s log2012.log linklog.log

# ls -lh *.

loglrwxrwxrwx 1 root root 11

11-22

06:58 linklog.log -> log2012.log

-rw-r--r-- 1 root root 296k 11-13

06:03 log2012.log

fifo是一種特殊的檔案型別,它主要解決多個程式同時訪問乙個檔案所造成的錯誤。fifo是first-in-first-out的縮寫,第乙個屬性為[p] 。

通常我們會以適當的副檔名來表示該檔案是什麼種類的。底下有數種常用的副檔名:

在linux底下,使用預設的ext2/ext3檔案系統時,針對檔名長度限制為:

一般而言,你在設定linux底下的檔名時, 最好避免一些特殊的字元,如下:

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

因為在cmd下,這些符號是有特殊意義的。另外,檔名以小數點「.」開頭時,代表這個檔案為隱藏檔案。由於執行命令時,常常會使用到-option之類的選項, 所以檔案最好避免以 - 或 + 開頭。

每天乙個Linux命令 22 檔案屬性詳解

本文將主要講解linux使用者和使用者組,檔案的最近訪問或修改時間等內容。命令 ls lih ls lih總計 316k 2095120 lrwxrwxrwx 1root root 1111 22 06 58 linklog log log2012 log 2095112 rw r r 1 root...

每天乙個Linux命令

將我遇到的linux指令總結一下,不斷增加 1 sz和rz 一般來說,linux 伺服器大多是通過 ssh客戶端來進行遠端的登陸和管理的,使用 ssh登陸 linux ssh有關的兩個命令可以提供很方便的操作 sz 將選定的檔案傳送 send 到本地機器 rz 執行該命令會彈出乙個檔案選擇視窗,從本...

每天乙個linux命令

linux cmp命令 linux cmp命令用於比較兩個檔案是否有差異。當相互比較的兩個檔案完全一樣時,則該指令不會顯示任何資訊。若發現有所差異,缺省會標示出第乙個不同之處的字元和列數編號。若不指定任何檔名稱或是所給予的檔名為 則cmp指令會從標準輸入裝置讀取資料。語法cmp clsv i 字元數...