在Bash脚本中获取当前目录名称(无完整路径)

德里克·达默(Derek Dahmer)

我如何在bash脚本中仅获得当前的工作目录名称,或者甚至仅通过终端命令如何获得。

pwd提供当前工作目录的完整路径,例如,/opt/local/bin但我只想要bin

查尔斯·达菲

不需要基名,特别是不需要运行pwd的子shell(它增加了额外且昂贵的fork操作);Shell可以使用参数扩展在内部执行此操作

result=${PWD##*/}          # to assign to a variable

printf '%s\n' "${PWD##*/}" # to print to stdout
                           # ...more robust than echo for unusual names
                           #    (consider a directory named -e or -n)

printf '%q\n' "${PWD##*/}" # to print to stdout, quoted for use as shell input
                           # ...useful to make hidden characters readable.

请注意,如果您在其他情况下(而不是PWD,而是其他一些持有目录名称的变量)应用此技术,则可能需要修剪任何斜杠。下面使用了bash的extglob支持,即使有多个斜杠也可以使用:

dirname=/path/to/somewhere//
shopt -s extglob           # enable +(...) glob syntax
result=${dirname%%+(/)}    # trim however many trailing slashes exist
result=${result##*/}       # remove everything before the last / that still remains
printf '%s\n' "$result"

或者,不带extglob

dirname="/path/to/somewhere//"
result="${dirname%"${dirname##*[!/]}"}" # extglob-free multi-trailing-/ trim
result="${result##*/}"                  # remove everything before the last /

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

获取脚本目录名称-Python

如何获取当前文件目录的完整路径?

Bash脚本获取自身完整路径的可靠方法

Windows Shell命令获取当前目录的完整路径?

如何从文件的完整路径获取目录?

在Fish Shell中获取当前目录(没有完整路径)

获取节点Webkit中目录的完整路径

打开目录时获取完整路径

获取当前工作目录名称而不是Node.js中的路径

如何从Windows批处理脚本中的文件路径获取父目录名称?

获取脚本当前正在[Python]中运行的完整路径

如何获取目录的完整路径

在Windows CMD提示中仅显示当前目录名称(而不是完整路径)

在bash提示符下仅显示当前目录名称(不是完整路径)

查找目录的完整路径(如果存在)并使用bash脚本存储在变量中

如何从C中的完整路径获取文件目录

使用PHP获取当前目录名称?

使用Bash列出具有完整路径的当前目录中的文件

如何使tcsh shell标题显示当前目录的完整路径?

在Ubuntu中设置终端提示以仅显示工作目录名称,而不显示其完整路径

在腻子上仅显示当前目录名称(不是完整路径)

如何在bash中获取文件的完整路径?

如何在Android的下载目录中获取每个文件的完整路径和名称

如何从bash脚本存储目录的完整路径?

从文件获取目录名而不使用完整路径

如何从Groovy的完整路径获取当前目录?

bash:从给定子目录名称的当前目录获取路径

从 Bash 脚本中获取完整路径

在 htaccess 中获取当前目录名称并防止重定向