1. 程式人生 > >三、Linux系統中的文件類型和文件擴展名

三、Linux系統中的文件類型和文件擴展名

也有 開頭 正則表達式 進入 例子 字符 舉例 roo src

.sock文件也是一類特殊的文件,這類文件通常用在網絡之間進行數據連接,如:我們可以啟動一個程序來監聽客戶端的要求,客戶端可以通過套接字來進行通信:

linux中的文件類型

文件類型介紹

Linux系統不同於windows系統,兩者文件類型和文件擴展名也有很大差別。Linux中的文件類型和Linux文件的文件擴展名多代表的意義和windows系統中是不同的。

通過一般應用程序或命令創建的文件,比如file.txtfile.tar,gz,這些文件雖然要用不同的程序或命令打開,但在linux中,都是常規文件(也稱為普通文件)。

後面附帶的後綴文件擴展名,除了讓曾經習慣

windows的用戶易讀外,大多數對於linux系統來說沒有特別實際的意義,而在windows系統中的擴展名就是實實在在表示文件的類型格式。

Linux中的文件類型

Linux系統中,可以說一切設備(包括目錄、普通文件)皆為文件。文件類型包含有普通文件、目錄、字符設備文件、塊設備文件、符號鏈接文件等等;下面分別來說明:

當執行ls -lls -la命令後顯示的結果中,

[root@localhost ~]# ls -l
total 60
-rw------- 1 root root   937 Apr 30 17:27 anaconda-ks.cfg
drwxr
-xr-x 2 root root 4096 Apr 30 21:40 Desktop -rw-r--r-- 1 root root 28884 Apr 30 17:26 install.log

第一列第2~10個字符(比如rwxr-xr-x)就是來描述文件權限的。而第一列中的第一個字符就是描述文件類型的,比如上面結果就有-,d等類型。

ls -l顯示文件屬性內容後,第一列的第一個字符就是用來區分文件類型;

d:表示這是一個目錄
-:表示這是一個普通文件
l:表示這是符號鏈接文件,實際上它指向
b、c:分別表示塊設備和其他的外圍設備
S、p:這些文件關系到系統的數據結構和管道
特別提醒:初學者先掌握d、l、
-這三種即可。

文件類型分別介紹

普通文件(regular file):

[root@localhost ~]# ls -l test.txt 
-rw-r--r-- 1 root root 0 Apr 30 22:18 test.txt

通過用ls -l來查看test.txt的屬性,可以看到第一列內容為-rw-r--r--,值得註意的是第一個符號是-(英文字符減號),在linux中,這樣的字符開頭就表示普通文件。

這些文件一般是用相關的應用程序或系統命令創建,比如touchcptar等工具命令。普通命令的刪除方式可以使用rm命令。

提示:windows下的docpptzipjpg等格式的文檔在linux下都屬於普通文件。

目錄文件(directoy):

[root@localhost ~]# ls -ld /home/zgy/
drwx------ 3 zgy zgy 4096 Apr 30 21:40 /home/zgy/

如上所示,當執行 ls -ld /home/zgy/時,可以看到第一列內容為drwx------ ,這種開頭帶有d字符的文件就表示目錄,目錄在Linux中是一個比較特殊的文件。

小技巧:如果僅僅想看目錄權限屬性時,可以使用ls-d參數,搭配組合為ls -ld 目錄名。

創建目錄的命令可以用mdkir命令,或cp可以把一個目錄復制為另一個目錄。刪除用rm -rrmdir(刪除空目錄才可以)命令。

同步提示:下面的執行ls -F的結果,在寫腳本時可以直接區別目錄和文件,每個目錄的後面多了個斜線。

[root@localhost ~]# ls -F
anaconda-ks.cfg  Desktop/  install.log  install.log.syslog  test.txt

在生產環境中,一般是通過以下辦法過濾出所有目錄文件的:

[root@localhost ~]# ls -F /etc/ |grep "/"
[root@localhost ~]# ls -F /etc/ |grep "^d"

=======涉及到的正則表達式部分簡要說明=============

^:表示以....開頭,如”^d”表示以d開頭

$:表示以....結尾,如”d$”表示以d結尾

字符設備或塊設備文件:

如果你進入/dev目錄,列一下文件,會看到類似的內容:

[root@localhost ~]# ls -al /dev/sda
brw-r----- 1 root disk 8, 0 Apr 30 10:25 /dev/sda
[root@localhost ~]# ls -al /dev/tty
crw-rw-rw- 1 root tty 5, 0 Apr 30 10:26 /dev/tty

技術分享圖片

可以看到/dev/tty的屬性是crw-rw-rw-,註意前面一個字符是c,這表示字符設備文件,比如貓等串口設備。

可以看到/dev/sda的屬性是brw-r----- ,註意前面一個字符是b,這表示塊設備,比如硬盤,光驅等設備。

特別提示:linux中查看硬件改動的方法:

[root@localhost ~]# /etc/init.d/kudzu start
Checking for hardware changes [  OK  ]

套接口文件

當啟動MySQL服務時,會產生一個mysql.sock。這個文件的屬性的第一個字符是s

技術分享圖片

.sock文件也是一類特殊的文件,這類文件通常用在網絡之間進行數據連接,如:我們可以啟動一個程序來監聽客戶端的要求,客戶端可以通過套接字來進行通信:

mysql -uroot -ppass -S /data/3306/mysql.sock,這個就是數據庫客戶端程序連接服務器端命令,通過套接字文件和數據庫服務器通信的例子。

例子:

技術分享圖片

Linux中的文件擴展名

一般來說,linux中的文件是不需要擴展名的,這點與windows的區別很大,我們知道在windows中可執行文件擴展名結尾通常是.exe .com .bat,而在linux中文件可否執行就是看權限位的x位是否有x,圖片文件擴展名通常是.jpg .jpeg .gif .bmp .png.

Linux 下擴展名的作用

linux中,雖然擴展名沒什麽實際意義,但是為了兼容windows,同時便於我們大多數習慣了linux的用戶區分文件的不同,我們還是習慣通過擴展名來表示不同文件的類型。舉例如下

技術分享圖片

附錄1find-type的文件類型的參數

技術分享圖片

三、Linux系統中的文件類型和文件擴展名