2013-07-25 126 views
1

我希望我清楚地說明了我的問題。具體而言,它是這樣的:如何打印我當前目錄的父目錄的名稱

我想用test或者case語句來確定變量$ DIR中包含的目錄名是我的當前目錄(。)還是它的父目錄(..)

當然,我可以回顯我的當前目錄(echo $ PWD),但回顯$ PWD的父母的最簡單方法是什麼?

謝謝。

回答

4

您可以使用${PWD%/*}

$ echo $PWD 
/home/me/test/t 
$ echo ${PWD%/*} 
/home/me/test 

由於表達${PWD%/*}是從$PWD回剝/*最短的匹配:

Bash Reference Manual → 3.5.3 Shell Parameter Expansion

$ {參數%字}

該單詞被擴展爲產生一個模式,就像在文件名擴展中一樣。如果模式與參數展開值的尾部分相匹配,則展開的結果是刪除了最短匹配模式的參數值。如果參數是'@'或'',則將模式刪除操作依次應用於每個位置參數,並且擴展是結果列表。如果參數是一個以'@'或''爲下標的數組變量,則模式刪除操作將依次應用於數組的每個成員,並且該擴展是結果列表。

+0

+1。但是,它並沒有在這裏工作。在我做了'cd /':)之後 – Kent

+0

@Kent也許它會在'cd //'之後工作:) – devnull

3
dirname $PWD 

dirname $(pwd) 
0

realpath

parent=$(realpath "$PWD/..") 
+0

請提供文檔來解釋這個問題的「如何」。 – rfornal

相關問題