ls -l檔案型別

工程師WWW發表於2015-06-18

Linux檔案型別常見的有:普通檔案(-)、目錄(d)、字元裝置檔案(c)、塊裝置檔案(b)、符號連結檔案(l)等;需要注意的是,Linux檔案型別和Linux檔案的檔名所代表的意義是兩個不同的概念。我們通過一般應用程式而建立的比如file.txt、file.tar.gz ,這些檔案雖然要用不同的程式來開啟,但放在Linux檔案型別中衡量的話,大多是常規檔案(也被稱為普通檔案)。


1 普通檔案 

[root@localhost ~]# ls -lh install.log 
-rw-r--r-- 1 root root 53K 03-16 08:54 install.log

我們用 ls -lh 來檢視某個檔案的屬性,可以看到有類似 -rw-r--r-- ,值得注意的是第一個符號是 - ,這樣的檔案在Linux中就是普通檔案。這些檔案一般是用一些相關的應用程式建立,比如影象工具、文件工具、歸檔工具... .... 或 cp工具等。這類檔案的刪除方式是用rm 命令;


2 目錄 

[root@localhost ~]# ls -lh 
總計 14M 
-rw-r--r-- 1 root root     2 03-27 02:00 fonts.scale 
-rw-r--r-- 1 root root   53K 03-16 08:54 install.log 
-rw-r--r-- 1 root root   14M 03-16 07:53 kernel-2.6.15-1.2025_FC5.i686.rpm 
drwxr-xr-x 2 1000 users 4.0K 04-04 23:30 mkuml-2004.07.17 
drwxr-xr-x 2 root root  4.0K 04-19 10:53 mydir 
drwxr-xr-x 2 root root  4.0K 03-17 04:25 Public

當我們在某個目錄下執行,看到有類似 drwxr-xr-x ,這樣的檔案就是目錄,目錄在Linux是一個比較特殊的檔案。注意它的第一個字元是d。建立目錄的命令可以用 mkdir 命令,或cp命令,cp可以把一個目錄複製為另一個目錄。刪除用rm 或rmdir命令。


3 字元裝置或塊裝置檔案 

如時您進入/dev目錄,列一下檔案,會看到類似如下的;

[root@localhost ~]# ls -la /dev/tty 
crw-rw-rw- 1 root tty 5, 0 04-19 08:29 /dev/tty 
[root@localhost ~]# ls -la /dev/hda1 
brw-r----- 1 root disk 3, 1 2006-04-19 /dev/hda1

我們看到/dev/tty的屬性是 crw-rw-rw- ,注意前面第一個字元是 c ,這表示字元裝置檔案。比如貓等串列埠裝置

我們看到 /dev/hda1 的屬性是 brw-r----- ,注意前面的第一個字元是b,這表示塊裝置,比如硬碟,光碟機等裝置;

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


4 套介面檔案 

當我們啟動MySQL伺服器時,會產生一個mysql.sock的檔案。

[root@localhost ~]# ls -lh /var/lib/mysql/mysql.sock 
srwxrwxrwx 1 mysql mysql 0 04-19 11:12 /var/lib/mysql/mysql.sock

注意這個檔案的屬性的第一個字元是 s。這個就是一般很少見到的socket檔案型別


5 符號連結檔案 

[root@localhost ~]# ls -lh setup.log 
lrwxrwxrwx 1 root root 11 04-19 11:18 setup.log -> install.log

當我們檢視檔案屬性時,會看到有類似 lrwxrwxrwx,注意第一個字元是l,這類檔案是連結檔案。是通過ln -s 原始檔名 新檔名 。上面是一個例子,表示setup.log是install.log的軟連結檔案。怎麼理解呢?這和Windows作業系統中的快捷方式有點相似。

符號連結檔案的建立方法舉例;

[root@localhost ~]# ls -lh kernel-2.6.15-1.2025_FC5.i686.rpm 
-rw-r--r-- 1 root root 14M 03-16 07:53 kernel-2.6.15-1.2025_FC5.i686.rpm

[root@localhost ~]# ln -s kernel-2.6.15-1.2025_FC5.i686.rpm  kernel.rpm 
[root@localhost ~]# ls -lh kernel* 
-rw-r--r-- 1 root root 14M 03-16 07:53 kernel-2.6.15-1.2025_FC5.i686.rpm 
lrwxrwxrwx 1 root root  33 04-19 11:27 kernel.rpm -> kernel-2.6.15-1.2025_FC5.i686.rpm

相關文章