Linux下如何用Bash命令获取文件的所在目录路径
提取文件路径的目录部分(Bash)
如果要从路径dirname/subdirname/filename中提取出文件所在的目录路径dirname/subdirname/,可以用以下两种常用方法:
方法1:使用dirname命令
dirname是专门用来提取路径目录部分的工具,默认返回不带末尾斜杠的结果,我们可以手动添加斜杠来满足需求:
# 定义目标路径 file_path="dirname/subdirname/filename" # 提取目录并添加末尾斜杠 dir_path=$(dirname "$file_path")/ # 输出结果 echo "$dir_path"
执行后会输出dirname/subdirname/。
方法2:使用Bash参数扩展(无需外部命令)
利用Bash内置的参数扩展功能,直接对字符串进行处理,效率更高:
file_path="dirname/subdirname/filename" # ${path%/*} 会从末尾删除最短的"/*"匹配段(即去掉文件名部分),再添加斜杠 dir_path="${file_path%/*}/" echo "$dir_path"
这种方法不需要调用外部命令,适合在脚本中频繁使用的场景。
内容的提问来源于stack exchange,提问作者setanta
相关产品推荐
相关产品推荐

