shell - 如何拆分路径以获取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
感谢在这方面的任何帮助。
解决方案
你可以这样做:
full_dir=$(dirname "$cf")
last_dir=$(basename "$full_dir")
或一枪
last_dir=$(basename "$(dirname "$cf")")
是的,你想要所有这些报价。
使用 shell 参数扩展:
full_dir=${cf%/*}
last_dir=${full_dir##*/}
那必须分两步完成。
推荐阅读
- python - AttributeError:模块 'pyautogui' 没有属性 'size'
- node.js - 当服务器启动时,消息被注销
- c# - C# MongoDB 驱动程序仅按时间或日期搜索日期时间列
- python-3.x - 读取具有不同长度标头的数据
- c - 三个数组的并集、交集和差集
- python - 在 SymPy 中用 (-M) 替换矩阵 M 并明确显示它
- java - 在 ServletContext 中临时保存用户密码的想法有什么本质上的错误吗?
- continuous-integration - 如何在 Bitbucket 和 Azure DevOps 之间创建 webhook?
- php - 在不同的刀片中使用侧边栏
- php - CakePHP 函数没有从 URL 调用