2015年2月2日 星期一

Linux的檔案類型


在瀏覽鳥哥的 Linux 教學文章 (http://linux.vbird.org/linux_basic/0210filepermission.php) 中有介紹到五種檔案類型:


不過在實際下 ls -al 命令後,卻看到了一個未知的檔案類型 "p"。


於是就上網搜尋有關 Linux file type,果然有比較多的介紹 (http://bashshell.net/file-permissions-and-attributes/understanding-linux-file-types/),有七種!

另一個討論區有人問到 Linux File Type 的問題 (http://stackoverflow.com/questions/25104872/linux-file-type),得到更多種類:


該不會是不同的 Linux 發行版本,就增加不同的檔案類型吧?一個存在已久的感想又再腦海迴盪:看繁中教學不如簡中,看簡中教學不如看英文。先就能找到的資料來瞭解一下這些檔案類型:

(-) Regular file:這還蠻直白的,就是一般檔案

(d) Directory:這個也很容易瞭解,就是目錄

(c) Character Device:如果只是用序列埠、鍵盤或滑鼠來說明這個『東西』應該不太夠吧!從 /dev 目錄下就會看到一大堆類型為『c』的檔案,這未免也太多了吧!(有可能是 BeagleBone 裡頭有比較多吧!) 再次上網搜尋 linux character device (http://en.wikipedia.org/wiki/Device_file#Character_devices)

character device 指的是一種以『字元』為單位的設備,而且是沒有 buffer,是直接存取的。這類裝置不一定允許讀或寫單一個字元,有可能需要整個區塊的讀或寫。

另一個網站 (http://www.freebsd.org/doc/en/books/arch-handbook/driverbasics-char.html) 的解說:


強調就是直接讓使用者程式存取的設備,而且是很常見的設備 (所以說 BeagleBone 裡頭有一堆是正常的)。

再來一個簡中的說明 (http://www.mike.org.cn/articles/linux-character-devices-and-block-devices-for-the-difference/) ,這回不只是 character device,還比較了 block device 的差異:


(b) Block Device:就字面上解釋是指大資料的儲存設備。一樣從網路上搜尋 linux block device,得到如下解釋 (http://www2.comp.ufscar.br/~helio/block/blkdevarch.html):


就是指一種已『區塊』矩陣為單位的設備 (應該也不侷限是儲存裝置),所有讀、寫運作都是以這個區塊為基礎運作。即使只是對區塊當中的小部分做讀寫,也需要整個區塊一起運作。

(s) Local Domain Socket & (l) Symbolic Link:在搜尋有關 local domain socket 的時候,看到某個討論區有人問了這兩種檔案類型 (http://www.linuxquestions.org/questions/linux-distributions-5/what-is-a-socket-file-256378/)


這裡又看到嘲諷 Windows 的架構。symbolic link 是可以讓你從不同位置去存取同一個檔案 (不太能瞭解)。再看看對 socket 這種檔案類型的說明:a socket file is used to pass information between applications amongst other applications (英文真的不好,完全不能瞭解),看起來好像是檔案和檔案之間交換資訊。

沒有留言:

張貼留言