2012-07-04 181 views

回答

3
mkdir /tmp/`basename $(pwd)` 

(請注意,他們是反引號,不轉發蜱。)

這工作,因爲做反引號命令替換。它基本上在反引號中運行這些東西,並用命令運行標準替換它。在這種情況下,帶有當前工作路徑的basename命令。而$(…)與反引號完全相同。

basename命令「從文件名剝離目錄和後綴」。 (見http://unixhelp.ed.ac.uk/CGI/man-cgi?basename

你也可以使用(如果你不想有反引號):

mkdir /tmp/$(basename $(pwd)) 

注意的是,如果路徑到當前目錄中包含空格或其他特殊字符,您需要將命令替換放在雙引號中:

mkdir "/tmp/$(basename "$(pwd)")" 
+0

這工作!謝謝! – Nick

0

$PWD始終包含當前目錄的完整路徑。因此${PWD##*/}$PWD除最後的/以外的部分)是當前目錄的名稱。

mkdir "/tmp/${PWD##*/}" 

你可以離開了雙引號,如果你知道當前目錄的名稱不包含任何空格或任何字符*?\[的。

在zsh的,有提取路徑的最後一個組件的一個簡單的方法:

mkdir -- /tmp/$PWD:t