網路農夫 --  Home 網路農夫 --  Home
網路農夫 --  Home
wait.....

4-2-11 hardpaths 實體路徑變數

此變數 hardpaths 和變數 cwd 極為相似,兩者都與顯示工作目錄的變數,然而 hardpaths 變數可以說是針對修正變數 cwd 在顯示上的一項錯誤,所產生的一個比較特殊的變數。這項錯誤產生在 UNIX 作業系統的一項重要的功能上,就是檔案系統的目錄連結(symbolic links或稱為soft links)。這是因為這項技術發展於 C shell 定義變數 cwd 之後的緣故。首先讓我們延用上例的提詞設定來看下面的例子:

/home1/akira % ln -s /usr/share/man man
/home1/akira % ls -l man
lrwxrwxrwx 1 akira 8 Oct 31 01:57 man -> /usr/share/man
/home1/akira % cd man
/home1/akira/man % pwd
/usr/share/man

在上例中我們將“/usr/share/man”以指令 ln 連結到目錄“man”,然後我們以指令“ls -l”顯示該目錄,訊息很明顯地告訴我們該目錄的連結狀態。當我們以指令 cd 到該目錄之下時發現題詞所顯示的工作目錄是“/home1/akira/man”,但指令 pwd 的結果卻告訴我們目前的工作目錄是“/usr/share/man”。這便是變數 cwd 無法應付這種 symbolic links 所造成的錯誤。如果你的 UNIX 作業系統版本有這樣的問題,你便可設定這個 hardpaths 變數除這個“bug”。使用語法如下:

% set hardpaths
%

當然它最好也是設定在“.cshrc”檔案中。

因為啟動這項功能的作用與會使用到 directory stack 的內建指令 pushd 及 popd 有相當大的關係。這就是為何要修改這項 bug 的最主要原因。

 

版本:Beta-2001-05 -- 網路農夫