如何拆分路径以获取 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=类

感谢这方面的任何帮助。

你可以做:

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

或一次性拍摄

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

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

带外壳参数扩展:

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

这必须分两步完成。

像这样,在尝试使用参数扩展时:

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

输出

classes

最新更新