首页 > 解决方案 > 如何拆分路径以获取shell脚本中的目录

问题描述

我正在尝试拆分文件的路径以获取目录名称以检查目录是否存在于新位置或不使用 shell 脚本。

我尝试使用

cf=src/classes/CarExperience.cls
echo ${cf%/*} 
echo ${cf##/*/}
echo ${cf#/*/*/}
echo ${cf%/*}

echo $(dirname "$cf")

但这些都没有给我想要的结果

期望的结果是在 src 之后获取部分并检查该内部目录是否存在。cf=src/classes/CarExperience.cls directory_name=classes

感谢在这方面的任何帮助。

标签: shellsh

解决方案


你可以这样做:

full_dir=$(dirname "$cf")
last_dir=$(basename "$full_dir")

或一枪

last_dir=$(basename "$(dirname "$cf")")

是的,你想要所有这些报价。

使用 shell 参数扩展:

full_dir=${cf%/*}
last_dir=${full_dir##*/}

那必须分两步完成。


推荐阅读