2009-11-16 21 views
23

如何提取pwd输出的最后一个目录?我不想使用目录结构中有多少级别的任何知识。如果我想清楚了,我可以这样做:提取pwd输出的最后一个目录

> pwd 
/home/kiki/dev/my_project 
> pwd | cut -d'/' -f5 
my_project 

但我想使用的作品,无论我在目录结构,其中的命令。我假设有一个简单的命令来使用awk或sed来执行此操作。

+0

如果你的工作目录是什么/? – 2009-11-16 21:17:14

回答

33

您是在寻找basename or dirname

喜欢的东西

basename `pwd` 

应该是你想知道什么。

如果你坚持要用sed,你也可以使用

pwd | sed 's#.*/##' 
+0

不错,那有效。谢谢! – Siou 2009-11-16 20:27:18

+3

或者,更可能是'endpath = $(basename $(pwd))'。 – 2009-11-16 20:39:25

+2

“$(pwd)”周围缺少引号。试试这个没有引号: mkdir“ab b”; cd“ab b” endpath = $(basename“$(pwd)”) – 2009-11-16 21:14:11

11

如果你想在bash脚本中完全做到这一点,但不运行任何外部二进制文件,${PWD##*/}应该工作。

+0

至多一点...如果您通过带有不同名称的符号链接到达目录,那么$ PWD值将与/ bin/pwd或/ usr/bin/pwd(与内置的pwd不同)生成的值。 – 2009-11-16 20:40:45

+0

@Jonathan Leffler:提问者使用了内置的pwd,所以我觉得使用$ PWD是合适的。 – Teddy 2009-11-17 20:43:36

0

用awk:

pwd | awk -F/ '{print $NF}' 
相关问题