为了账号安全,请及时绑定邮箱和手机立即绑定

从文件路径获取文件目录路径

从文件路径获取文件目录路径

斯蒂芬大帝 2019-12-09 14:32:58
如果在Bash中,VAR="/home/me/mydir/file.c"我如何获得"/home/me/mydir"?
查看完整描述

3 回答

?
心有法竹

TA贡献1866条经验 获得超5个赞

dirname以及basename您正在寻找的提取路径分量的工具:


$ VAR=/home/me/mydir/file.c


$ DIR=$(dirname "${VAR}")


$ echo "${DIR}"

/home/me/mydir


$ basename "${VAR}"

file.c

他们不是内部的Bash命令,但他们是POSIX标准的一部分(见dirname,basename)等应可在绝大多数将要运行bash的系统。


查看完整回答
反对 回复 2019-12-09
?
繁星淼淼

TA贡献1775条经验 获得超11个赞

$ export VAR=/home/me/mydir/file.c

$ export DIR=${VAR%/*}

$ echo "${DIR}"

/home/me/mydir


$ echo "${VAR##*/}"

file.c

为了避免对basename和的依赖dirname


查看完整回答
反对 回复 2019-12-09
?
aluckdog

TA贡献1847条经验 获得超7个赞

值得一提的是,如果只有文件名或相对路径,那么单独使用dirname将无济于事。对我而言,答案最终是readlink。


fname='txtfile'    

echo $(dirname "$fname")                # output: .

echo $(readlink -f "$fname")            # output: /home/me/work/txtfile

然后,您可以将两者结合起来以获得目录。


echo $(dirname $(readlink -f "$fname")) # output: /home/me/work


查看完整回答
反对 回复 2019-12-09
  • 3 回答
  • 0 关注
  • 660 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信