提取pwd输出的最后一个目录

Sio*_*iou 35 unix bash pwd

如何提取pwd输出的最后一个目录?我不想使用目录结构中有多少级别的任何知识.如果我想使用它,我可以做类似的事情:

> pwd
/home/kiki/dev/my_project
> pwd | cut -d'/' -f5
my_project
Run Code Online (Sandbox Code Playgroud)

但我想使用一个无论我在目录结构中的哪个位置都能工作的命令.我假设使用awk或sed执行此操作有一个简单的命令.

mih*_*ihi 46

你在寻找basenamedirname吗?

就像是

basename "`pwd`"
Run Code Online (Sandbox Code Playgroud)

应该是你想知道的.

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

pwd | sed 's#.*/##'
Run Code Online (Sandbox Code Playgroud)

  • 或者,更可能是`endpath = $(basename $(pwd))`. (5认同)
  • 缺少"$(pwd)"周围的报价.试试这个没有引号:mkdir"ab b"; cd"ab b"endpath = $(basename"$(pwd)") (3认同)

Ted*_*ddy 13

如果你想在bash脚本中完全完成它而不运行任何外部二进制文件,那么${PWD##*/}应该可行.

  • 我发现它是命令替换:https://www.gnu.org/software/bash/manual/html_node/Shell-Parameter-Expansion.html (2认同)

Cen*_*bit 5

应该为你工作: pwd | rev | cut -f1 -d'/' - | rev

参考: https ://stackoverflow.com/a/31728689/663058