三、Linux系統中的文件類型和文件擴展名
.sock文件也是一類特殊的文件,這類文件通常用在網絡之間進行數據連接,如:我們可以啟動一個程序來監聽客戶端的要求,客戶端可以通過套接字來進行通信:
linux中的文件類型
文件類型介紹
Linux系統不同於windows系統,兩者文件類型和文件擴展名也有很大差別。Linux中的文件類型和Linux文件的文件擴展名多代表的意義和windows系統中是不同的。
通過一般應用程序或命令創建的文件,比如file.txt、file.tar,gz,這些文件雖然要用不同的程序或命令打開,但在linux中,都是常規文件(也稱為普通文件)。
後面附帶的後綴文件擴展名,除了讓曾經習慣
Linux中的文件類型
在Linux系統中,可以說一切設備(包括目錄、普通文件)皆為文件。文件類型包含有普通文件、目錄、字符設備文件、塊設備文件、符號鏈接文件等等;下面分別來說明:
當執行ls -l或ls -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中,這樣的字符開頭就表示普通文件。
這些文件一般是用相關的應用程序或系統命令創建,比如touch、cp、tar等工具命令。普通命令的刪除方式可以使用rm命令。
提示:windows下的doc、ppt、zip、jpg等格式的文檔在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 -r或rmdir(刪除空目錄才可以)命令。
同步提示:下面的執行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的用戶區分文件的不同,我們還是習慣通過擴展名來表示不同文件的類型。舉例如下
附錄1:find-type的文件類型的參數
三、Linux系統中的文件類型和文件擴展名