Unix的檔案存放方式,通常是很合乎邏輯的。所以我們常常看到一些老手,一下就知道什麼東西要去哪裡找,什麼東西該放在哪裡。但是對於新手而言,有時一下看到什麼放到哪去,什麼拷貝到哪去,簡直快瘋了。更有甚者,有些程式就說,「放到你平常放的地方」。天。啊。那是哪裡?
我們這裡,就大概的討論Unix,尤其是Mac上的Unix系統,是怎麼放檔案的。
對每一個使用者來說,Unix都有一個自己的區域。在Mac是在 /Users 這個目錄區底下。
對系統來說,系統「自己的」目錄(或者你也可以想成是root這個「使用者」的目錄),就是根目錄, / 底下。
我現在假定你會想讀這篇文章,是因為你準備自己管你的這台電腦,也就是你會有root的權限(在Mac上比較特別一點,你不一定有root的權限,也可以管理你的電腦。這樣一方面保護你的電腦,一方面也讓你可以好像root去使用。不過我們先不細談。)
這樣的原則,讓Unix保持它的穩定性。核心的東西可能很少,所以易於保持穩定。那我們要加什麼,就在「外面」加。這樣,萬一出問題,就外面死了,或某個程式死了,可是整個系統還好好的。
也就是這樣呢,所以如果我們確定某個程式其實也只有自己會用,就放在自己的目錄下就好。那,如果要給大家用呢?一般的Unix是把所謂「程式」放在 bin (Binary,二進位檔)這個目錄底下。一般來說,很可能是在這裡
/usr/bin
這裡裝很多系統幫我們裝的東西,比方說gcc啦,emacs啦,grep啦,more啦等等等等的。你會發現這根本很多我們機乎當成「指令」的東西。再一次,這是Unix的特點,核心很小,要做什麼用其他程式來做。
好,那,我現在想裝個程式,給每一個人用。理論上我當然可以勇敢的放在 /usr/bin 裡面,因為和上述那些「程式」一樣,都是程式嘛。但是,你又有點怕。因為上面的程式是系統裝的,簡直就是指令了,你真的要給他裝在那裡嗎?
的確這麼裝不是好主意,所以我們應該裝在一個叫
/usr/local/bin
這樣的地方。也就是說,這雖然也是程式,也是要給大家用的,可是是我們自己裝的。這麼一來,有問題我們知道哪裡去找問題。系統要更新,也不會影響我們自己裝的程式。
local 的概念,不是系統有,很多應用程式也有。比方說如果有LaTeX系統,都會有個檔案夾叫 texmf 的。這是LaTeX系統放字形啦,巨集啦,等等等等的重要區域。我們今天要裝個新的巨集,套件,字形等等,當然可以勇敢的往裡面放。可是一來不久就忘了哪個是我們放的,哪個是系統自己的。二來哪天我們更新LaTeX,我們放的可能和系統不合,出些問題,很難找出原因。因此,在LaTeX系統下就有可能有 texmf.local 。
當然,如果你根本是要自己使用,在自己目錄建自己的 texmf 區更好。