2012-07-04 183 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