2008年9月6日 星期六

檔案架構

檔案架構

目錄和檔案
我們可以這樣說﹐電腦上面的所有資料都是以檔案的形式儲存的﹐如果要讀寫儲存設備的資料更是非經檔案系統不可。
我們學習任何作業系統幾乎都是從檔案系統的管理開始的。比如 DOS 的 dir( dierctory﹐顯示目錄內容), cd( change directory﹐轉換目錄)這些命令就是檔案管理指令來的。檔案其實隨您喜歡放拿裡都可以﹐只要能讓系統找得到就可以了﹐但為了方便和較系統的管理﹐檔案系統通常會以目錄樹的形式管理。目錄( directory﹐在 windows 裡面也稱作資料夾 -- folder )﹐裡面包含其它一些檔案或目錄(其實目錄也是以檔案的形式存在的)。在目錄下面的目錄我們稱之為"子目錄"﹐當然﹐相對而言,目錄上層的目錄就稱為父目錄(英文稱 parent directory﹐糟糕:中文恐怕有重男輕女之嫌 ^_^ )。而在最頂的、再沒有父目錄的目錄﹐應該稱為頂( top )目錄吧﹖哈哈﹐這樣就猜錯了﹐掉過來稱根( root )目錄才對哦~~ 因此,所有檔案和目錄,事實上都一定被安排在某一目錄之下的。而整個架構,就像一棵倒長的樹,那現在您應該知道人們平時所談的"目錄樹"是甚麼意思了吧?
整個目錄係統中,根目錄是最重要的﹐而且不同的作業系統在設計上也差異甚遠。比方說,在 Unix-Like 系統上,只有唯一一個根目錄﹔然而,在 windows 系統上,每個磁碟分區(partition)都有其各自的根目錄。不管如何安排,假如根目錄消失了﹐那麼所有檔案和子目錄都會不見﹗我們在提到一個檔案的時侯﹐準確來說,是應該加上目錄所在地才完整﹐我們稱之為路徑(path)。對仁何一個檔案來說﹐路徑只有一條﹐也就是說﹐在同一個目錄裡面不能有兩個相同的檔案名稱﹐如果硬是用相同名稱的話﹐則可以放在不同的目錄裡面。就好像人名一樣﹐在自己的家裡面﹐父母給您起了一個名字﹐那麼這名字就不能給其它弟弟妹妹了﹔但您不能限制別的父母給他們的孩子用您的名字哦﹐如果真那麼巧一樣姓名的話﹐那麼要區分您和他/她﹐就要說明是誰家的孩子才知道了。
檔案的名字其實可以隨便起的啦﹐不過為了方便和系統管理﹐一般都會按照一定格式來命名的。和我們的名字一樣﹐檔案也有其姓和名﹐一般會用一個點“.”分隔﹐不過他們的姓名好像是依西方人的傳統﹐將姓氏排在後面的。我們通常以檔案的姓來判別其類型﹐比如以“.com”結尾的是一個可執行命令(command)﹐以“.sys”結尾的通常是給系統(system)使用的。另外﹐不同的應用程式也喜歡給其產生的檔案取個比較容易判別的姓﹐如“.doc”是 Word 的檔案(document)﹐“.xls”是 Excel 檔案﹐等等﹐不勝枚舉。這個檔案的姓﹐有個正規名稱叫延伸檔案名或副檔案名。
不過在以前在 DOS 之下﹐檔案命名一般都依照 8.3 規格﹐也就是名字最長 8 個且不可以有空白和一些保留字(如“/”)﹐而姓則最長 3 個字。可不可以不起姓只用名呢﹖可以﹗不過長度也是只能最多 8 個字啦。然而到了 Windows95 之後﹐以及在其它的作業系統上面﹐則不受這個限制﹐有些系統最長可以使用 256 個字呢﹗只不過﹐恐怕您要記著的話也難吧﹖
檔案屬性
檔案的增加﹑移除﹑改名﹑複製﹐等動作﹐完全由您做主﹐但如果檔案已經打開並正被程式使用中﹐您就不能這樣為所欲為了。有時候錯誤的更改了檔案名稱﹐還會對系統造成破壞哦(因為系統不知道您改了﹐除非您已經通知了它)﹐嚴重的還會讓系統無法工作﹗所以﹐有些檔案會加上屬性﹐就是標明檔案是唯讀(Read Only)的﹐或是給系統(System)使用的﹐或乾脆將其隱藏(Hidden)起來。
還記得在前面的 作業系統 裡面曾經教過用 attrib 來看檔案嗎﹖這個 attrib.com 就是用來查看和改變檔案屬性的了。再拿 DOS 的開機片為例: 輸入 attrib a:\*.* 之後﹐您會看到這樣的畫面:
C:\>attrib a:\*
A SHR IO.SYS a:\IO.SYS
A SHR MSDOS.SYS a:\MSDOS.SYS
A SHR DRVSPACE.BIN a:\DRVSPACE.BIN
A COMMAND.COM a:\COMMAND.COM
(注﹕因為這張是用 Widnows95 來做的 format /s ﹐所以會多了個 drvspace.bin 檔﹐其實只有當您的磁碟使用了 windows 的壓縮才會用到)
除了那個 A(Achive﹐是供備份系統作參考的﹐在 維護與注意 裡面再作說明)之外﹐您會看到那兩個隱藏檔案前面還有 SHR 的字眼﹐這就是檔案的屬性了﹕S=System, H=Hidden, R=Read Only。這樣的話﹐您使用 dir 是看不到帶有 H 屬性的檔案的。不過要將之顯形也易如反掌啦: 輸入 attrib -s -h -r a:\io.sys ﹐按 SHR 順序分別用減號就可以將其屬性全部解除掉﹐也就可以任您玩弄於掌了。
不過﹐系統之所以要如此設定﹐當然是有其道理的﹐如果您不確定如何修改這些檔案﹐最好還是用 attrib +s +h +r a:\io.sys (將減號換成加號)把屬性重新加上就安全多了。
實例分析
或許您會問 a:\*.* 是什麼檔案啊﹖好問題﹐這個 a:\*.* 可不簡單哦﹐要能完全解釋清楚﹐相信您對這一章也有相當認識了。
首先可以說這是一個帶路徑的檔案。
通常路徑都是使用“\”(在Unix裡面正好相反﹐用“/”)來代表一個目錄﹐第一個 \ 代表的就是根目錄﹐在根目錄前面的 a: 是 DOS 系統使用的磁碟代號(在其它的一些作業系統裡面可以用任何名字)。通常 a: 和 b: 分別代表第一個和第二個軟碟。c: 可以說是最重要的﹐因為DOS一切東西都要從 c: 開始的﹐所代表的是硬碟的第一個磁碟分區﹐從 d: 到後面則是由第二個開始的磁碟分區。
那麼 *.* 呢﹖準確來說不可以說是一個檔案﹐因為 * 是一個通配字元﹐也就是說可以代表任何字﹐*.* 就是任何姓任何名了﹐也就是任何以“.”分隔的檔案。除了 * 還有一個通配字元是“?”﹐? 和 * 之間有何不同呢﹖ * 可以代表任何文字長度﹐不管只有一個字或是有 8 個字﹔而 ? 則只代表一個字元。比如 a: 的根目錄裡面有 io.sys﹐打 dir a:\io.s?s 或 dir a:\io.* 都可以顯示這個檔案。
絕對路徑和當前目錄
一個檔案的準確表示應該是這樣的格式的 : <(包括磁碟代號的)路徑>\<檔案名>﹐我們稱這樣的格式為 絕對路徑﹐為什麼我們要使用絕對路徑呢﹖一如前面幾段所說﹐是用來區分檔案身份的。但如果要顯示您目前所處於的目錄(我們稱為當前目錄)之下的檔案﹐則路徑可以省略。
開機之後﹐預設的當前目錄會是 c:\ ﹐如果您要顯示 a:\ 的目錄﹐就要加上路徑了。但如果我們不想每次找檔案都加入路徑去尋找檔案﹐我們可以輸入 path 來設定﹐比如 path=a:\;c:\windos 。path 一次可以指定多個路徑﹐路徑和路徑之間使用“;”來分隔。如果碰到不同的路徑裡有相同檔案名稱的情形﹐會先以當前目錄為准﹐其次以在 path 前面的路徑為准。不過您不想每次開機後都輸入 path 吧﹖您可以將 path 加進 c:\autoexec.bat 裡面﹐那麼系統在啟動的時候就會自動幫您輸入的了。
除了使用絕對路徑﹐我們還可以使用“.”“..”來表示路徑﹕ . 代表當前目錄﹐ .. 代表父目錄。假設當前目錄為 c:\temp\test\﹐如果想轉去 c:\dos﹐輸入 cd ..\..\dos 和輸入 cd c:\dos 是一樣的。如果您輸入的一個命令在當前目錄和所有路徑都找不到﹐那麼您會等到一個 Bad command or file name (或者是 Command not found)的錯誤信息。
有些Linux系統裡面﹐預設是沒有指定當前目錄的﹐那麼您就要輸入“./”來指定當前目錄了(當然使用絕對路徑是絕對可行的)。
檔案的類型和檔案總管
上面說過檔案的姓(在 . 後面﹐也稱為延伸檔案名或副檔案名)代表著不同的類型。然而不同類型的檔案﹐是需要不同的程式產生和開啟的(您自己是沒有可能產生或開啟一個檔案的)﹐比如 Word 的檔案類型是 doc﹐Excel 的檔案類型是 xls 等等。不過有些程式可以讀寫多種檔案類型﹐比如 Word 就可以讀寫 doc、wri、txt 等類型的當案。
使用這些功能比較強大的程式﹐我們還可以進行檔案類型的轉換呢。比如我們用小畫家畫了一個圖形﹐儲存的時候會變成 bmp 的類型。bpm 檔案通常都比較大﹐如果要拿到網頁上面展示就會很慢了。這時候我們可以使用 MS Office 帶來到 Photo Editor 開啟這個 bmp 檔案﹐然後將之另存為 jpg 或 gif 檔案類型﹐有時候這樣可以將檔案 size 減肥一半有多呢﹐越肥越見效﹗不過﹐小畫家卻是不可能看到 jpg 和 gif 檔案的。
在 Windows 的檔案總管裡面﹐通常會將一些程式與它們最常使用的檔案類型關聯起來﹐那麼我們只要用滑鼠連續點兩下這個檔案﹐關聯的程式就會被啟動和將這個檔案開啟了。不過﹐我們是可以改變這些關聯的﹐在檔案總管裡面﹐選擇“檢視 / 資料夾選項 / 檔案類型”選取您欲改變關聯的類型﹐然後按“編輯\編輯...”我們就可以將之關聯到可以讀取這類型的其它“用來執用動作的應用程式”了。
使用 windows 的檔案總管確實比以前在 DOS 裡面方便多了﹐隨便用鼠標右鍵點選一個檔案和資料交﹐就會看到一些用來管理檔案的常用動作﹐比如﹕複製、剪下、刪除、等等。如果欲點選多個檔案/資料夾﹐可以用鼠標先在空白位置點下﹐然後按主鼠標拖動﹐將要選擇的範圍劃出來﹐變了顏色的部份就被選擇了﹔也可以按著 Shift 鍵不放﹐先點第一個欲選擇的檔案﹐然後點最後一個﹐這樣這兩個檔案之間的連續範圍都會被選擇。按著 Ctrl 鍵也可以點選多個檔案哦﹐和 Shift 鍵不同之處是 Ctrl 一次只能選擇一個檔案﹐重複多次則可以選擇多個檔案﹐如果再點選已經被選擇了的檔案﹐則會放棄選擇。選擇好之後﹐用右鍵點選任何一處變色的地方﹐就可以從彈出的選單中﹐選擇您要進行的動作。如果選擇了複製(可以直接按 Ctrl+C)﹐或剪下(Ctrl+X)﹐那麼﹐當轉換到目的地目錄﹐然後再按右鍵﹐選擇貼上(Ctrl+V)就可以完成動作。
其實檔案總管還可以做很多事情﹐多摸索就知道啦。

沒有留言: