更新時間:2020-12-15 17:41:34 來源:動力節(jié)點 瀏覽2461次
眾所周知,在Linux 中一切皆為文件,包括硬盤和顯卡等。在 Linux 系統(tǒng)中,大部分的文件都是普通文件和目錄文件。但是也有其他的文件類型,發(fā)揮著不同的作用。因此,理解Linux文件類型在許多方面都是非常重要的。
一般情況下,Linux文件類型分為以下6類:
1.普通文件(-)
從Linux的角度來說,類似mp4、pdf、html這樣應用層面上的文件類型都屬于普通文件Linux用戶可以根據(jù)訪問權限對普通文件進行查看、更改和刪除。
2.目錄文件(d,directory file)
目錄文件對于用慣Windows的用戶來說不太容易理解,目錄也是文件的一種目錄文件包含了各自目錄下的文件名和指向這些文件的指針,打開目錄事實上就是打開目錄文件,只要有訪問權限,你就可以隨意訪問這些目錄下的文件(普通文件的執(zhí)行權限就是目錄文件的訪問權限),但是只有內核的進程能夠修改它們雖然不能修改,但是我們能夠通過vim去查看目錄文件的內容。
3.符號鏈接(l,symbolic link)
這種類型的文件類似Windows中的快捷方式,是指向另一個文件的間接指針,也就是我們常說的軟鏈接。
4.塊設備文件(b,block)和字符設備文件(c,char)
這些文件一般隱藏在/dev目錄下,在進行設備讀取和外設交互時會被使用到比如磁盤光驅就是塊設備文件,串口設備則屬于字符設備文件系統(tǒng)中的所有設備要么是塊設備文件,要么是字符設備文件,無一例外。
5. FIFO(p,pipe)
管道文件主要用于進程間通訊。比如使用mkfifo命令可以創(chuàng)建一個FIFO文件,啟用一個進程A從FIFO文件里讀數(shù)據(jù),啟動進程B往FIFO里寫數(shù)據(jù),先進先出,隨寫隨讀。
6.套接字(s,socket)
用于進程間的網(wǎng)絡通信,也可以用于本機之間的非網(wǎng)絡通信這些文件一般隱藏在/var/run目錄下,證明著相關進程的存在。
6 種Linux文件類型,就是以上的內容,Linux 文件是沒有所謂的擴展名的,一個 Linux文件能不能被執(zhí)行與它是否可執(zhí)行的屬性有關,只要你的權限中有 x ,比如[ -rwx-r-xr-x ] 就代表這個文件可以被執(zhí)行,與文件名沒有關系。
Linux 系統(tǒng)上的文件名真的只是讓你了解該文件可能的用途而已,真正的執(zhí)行與否仍然需要權限的規(guī)范才行。比如常見的/bin/ls 這個顯示文件屬性的指令要是權限被修改為無法執(zhí)行,那么ls 就變成不能執(zhí)行了。這種問題最常發(fā)生在文件傳送的過程中。例如你在網(wǎng)絡上下載一個可執(zhí)行文件,但是偏偏在你的Linux系統(tǒng)中就是無法執(zhí)行,那就可能是檔案的屬性被改變了。而且從網(wǎng)絡上傳送到你的Linux系統(tǒng)中,文件的屬性權限確實是會被改變的。在本站的Linux教程中有Linux系統(tǒng)中文件屬性變化的詳細解析,感興趣的小伙伴可以去觀看學習。