linux 檔案種類與副檔名 文件隐藏

上一篇 / 下一篇  2010-03-30 15:51:47 / 个人分类:linux

Linux檔案種類與副檔名

我們在基礎篇一直強調一個概念,那就是:任何裝置在Linux底下都是檔案, 不僅如此,連資料溝通的介面也有專屬的檔案在負責~所以,你會瞭解到,Linux的檔案種類真的很多~ 除了前面提到的一般檔案(-)與目錄檔案(d)之外,還有哪些種類的檔案呢?


  • 檔案種類:

我們在剛剛提到使用『ls -l』觀察到第一欄那十個字元中,第一個字元為檔案的類型。 除了常見的一般檔案(-)與目錄檔案(d)之外,還有哪些種類的檔案類型呢?

  • 正規檔案(regular file )
    就是一般我們在進行存取的類型的檔案,在由 ls -al 所顯示出來的屬性方面,第一個字元為 [ - ],例如 [-rwxrwxrwx ]。另外,依照檔案的內容,又大略可以分為:

    • 純文字檔(ASCII)這是Linux系統中最多的一種檔案類型囉, 稱為純文字檔是因為內容為我們人類可以直接讀到的資料,例如數字、字母等等。 幾乎只要我們可以用來做為設定的檔案都屬於這一種檔案類型。 舉例來說,你可以下達『 cat ~/.bashrc 』就可以看到該檔案的內容。 (cat 是將一個檔案內容讀出來的指令)

    • 二進位檔(binary)還記得我們在『第零章、計算機概論』裡面的軟體程式的運作中提過, 我們的系統其實僅認識且可以執行二進位檔案(binary file)吧?沒錯~ 你的Linux當中的可執行檔(scripts, 文字型批次檔不算)就是這種格式的啦~ 舉例來說,剛剛下達的指令cat就是一個binary file。

    • 資料格式檔(data)有些程式在運作的過程當中會讀取某些特定格式的檔案,那些特定格式的檔案可以被稱為資料檔 (data file)。舉例來說,我們的Linux在使用者登入時,都會將登錄的資料記錄在 /var/log/wtmp那個檔案內,該檔案是一個data file,他能夠透過last這個指令讀出來! 但是使用cat時,會讀出亂碼~因為他是屬於一種特殊格式的檔案。瞭乎?

  • 目錄(directory)
    就是目錄囉~第一個屬性為 [ d ],例如 [drwxrwxrwx]。

  • 連結檔(link)
    就是類似Windows系統底下的捷徑啦! 第一個屬性為 [ l ](英文L的小寫),例如 [lrwxrwxrwx] ;

  • 設備與裝置檔(device)
    與系統周邊及儲存等相關的一些檔案,通常都集中在/dev這個目錄之下!通常又分為兩種:

    • 區塊(block)設備檔:就是一些儲存資料, 以提供系統隨機存取的周邊設備,舉例來說,硬碟與軟碟等就是啦! 你可以隨機的在硬碟的不同區塊讀寫,這種裝置就是區塊裝置囉!你可以自行查一下/dev/sda看看, 會發現第一個屬性為[ b ]喔!

    • 字元(character)設備檔:亦即是一些序列埠的周邊設備, 例如鍵盤、滑鼠等等!這些設備的特色就是『一次性讀取』的,不能夠截斷輸出。 舉例來說,你不可能讓滑鼠『跳到』另一個畫面,而是『滑動』到另一個地方啊!第一個屬性為 [ c ]。

  • 資料接口檔(sockets)
    既然被稱為資料接口檔, 想當然爾,這種類型的檔案通常被用在網路上的資料承接了。我們可以啟動一個程式來監聽用戶端的要求, 而用戶端就可以透過這個socket來進行資料的溝通了。第一個屬性為 [ s ], 最常在/var/run這個目錄中看到這種檔案類型了。

  • 資料輸送檔(FIFO, pipe)
    FIFO也是一種特殊的檔案類型,他主要的目的在解決多個程序同時存取一個檔案所造成的錯誤問題。 FIFO是first-in-first-out的縮寫。第一個屬性為[p] 。

除了設備檔是我們系統中很重要的檔案,最好不要隨意修改之外(通常他也不會讓你修改的啦!), 另一個比較有趣的檔案就是連結檔。如果你常常將應用程式捉到桌面來的話,你就應該知道在 Windows底下有所謂的『捷徑』。同樣的,你可以將 linux下的連結檔簡單的視為一個檔案或目錄的捷徑。 至於socket與FIFO檔案比較難理解,因為這兩個咚咚與程序(process)比較有關係, 這個等到未來你瞭解process之後,再回來查閱吧!此外, 你也可以透過man fifo及man socket來查閱系統上的說明!


  • Linux檔案副檔名:

基本上,Linux的檔案是沒有所謂的『副檔名』的,我們剛剛就談過,一個Linux 檔案能不能被執行,與他的第一欄的十個屬性有關, 與檔名根本一點關係也沒有。這個觀念跟Windows的情況不相同喔!在Windows底下, 能被執行的檔案副檔名通常是 .com .exe .bat等等,而在Linux底下,只要你的權限當中具有x的話,例如[ -rwx-r-xr-x ] 即代表這個檔案可以被執行喔

不過,可以被執行跟可以執行成功是不一樣的~舉例來說,在root家目錄下的install.log 是一個純文字檔,如果經由修改權限成為 -rwxrwxrwx 後,這個檔案能夠真的執行成功嗎? 當然不行~因為他的內容根本就沒有可以執行的資料。所以說,這個x代表這個檔案具有可執行的能力, 但是能不能執行成功,當然就得要看該檔案的內容囉~

雖然如此,不過我們仍然希望可以藉由副檔名來瞭解該檔案是什麼東西,所以,通常我們還是會以適當的副檔名來表示該檔案是什麼種類的。底下有數種常用的副檔名:

  • *.sh :腳本或批次檔 (scripts),因為批次檔為使用shell寫成的,所以副檔名就編成 .sh 囉;

  • *Z, *.tar, *.tar.gz, *.zip, *.tgz:經過打包的壓縮檔。這是因為壓縮軟體分別為 gunzip, tar 等等的,由於不同的壓縮軟體,而取其相關的副檔名囉!

  • *.html, *.php:網頁相關檔案,分別代表 HTML 語法與 PHP 語法的網頁檔案囉! .html 的檔案可使用網頁瀏覽器來直接開啟,至於 .php 的檔案, 則可以透過 client 端的瀏覽器來 server 端瀏覽,以得到運算後的網頁結果呢!

基本上,Linux系統上的檔名真的只是讓你瞭解該檔案可能的用途而已, 真正的執行與否仍然需要權限的規範才行!例如雖然有一個檔案為可執行檔, 如常見的/bin/ls這個顯示檔案屬性的指令,不過,如果這個檔案的權限被修改成無法執行時, 那麼ls就變成不能執行囉!

上述的這種問題最常發生在檔案傳送的過程中。例如你在網路上下載一個可執行檔,但是偏偏在你的 Linux系統中就是無法執行!呵呵!那麼就是可能檔案的屬性被改變了!不要懷疑,從網路上傳送到你的 Linux系統中,檔案的屬性與權限確實是會被改變的喔!


  • Linux檔案長度限制:

在Linux底下,使用預設的Ext2/Ext3檔案系統時,針對檔案的檔名長度限制為:

  • 單一檔案或目錄的最大容許檔名為 255 個字元;
  • 包含完整路徑名稱及目錄 (/) 之完整檔名為 4096 個字元。

是相當長的檔名喔!我們希望Linux的檔案名稱可以一看就知道該檔案在幹嘛的, 所以檔名通常是很長很長!而用慣了Windows的人可能會受不了,因為檔案名稱通常真的都很長, 對於用慣Windows而導致打字速度不快的朋友來說,嗯!真的是很困擾.....不過,只得勸你好好的加強打字的訓練囉!

而由第五章談到的熱鍵你也會知道, 其實可以透過[tab]按鍵來確認檔案的檔名的!這很好用啊! 當然啦,如果你已經讀完了本書第三篇關於BASH的用法,那麼你將會發現 『哇!變數真是一個相當好用的東西吶!』 嗯!看不懂,沒關係,到第三篇談到bash再說!


  • Linux檔案名稱的限制:

由於Linux在文字介面下的一些指令操作關係,一般來說,你在設定Linux底下的檔案名稱時, 最好可以避免一些特殊字元比較好!例如底下這些:

* ? > < ; & ! [ ] | \ ' " ` ( ) { }

因為這些符號在文字介面下,是有特殊意義的!另外,檔案名稱的開頭為小數點『.』時, 代表這個檔案為『隱藏檔』喔!同時,由於指令下達當中,常常會使用到 -option 之類的選項, 所以你最好也避免將檔案檔名的開頭以 - 或 + 來命名啊!


TAG:

 

评分:0

我来说两句

日历

« 2024-04-27  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 39754
  • 日志数: 47
  • 建立时间: 2010-01-07
  • 更新时间: 2010-10-11

RSS订阅

Open Toolbar