获取文件名与目录名的几种方式
1.使用basename dirname
1)basename返回路径中的文件名部分
用法:
basename(path,suffix)
path 必须,输入路径
suffix 可选,文件扩展名。如果文件名有文件扩展名,将不会显示这个扩展名。
举栗:
basename /home/Project/Myjob/hello.txt #输出hello.txt
basename /home/Project/Myjob/hello.txt .txt #输出hello
basename /home/Project/Myjob/ #输出Myjob
2)从路径中获取目录名
用法:
dirname path
path 必须,输入路径
举栗:
dirname /home/Project/Myjob/hello.txt #输出/home/Project/Myjob
dirname /home/Project/Myjob #输出/home/Project
dirname /home/Project/Myjob /home/Project #输出home/Project /home
dirname后的路径可以有多个
3)举栗:
var=/home/Project/Myjob/hello.txt
echo $(basename $var) 结果:hello.txt
echo $(basename $var .txt) 结果:hello
echo $(dirname $var) 结果:/home/Project/Myjob
2.使用字符串截取的方式
路径:var=/home/Project/Myjob/hello.txt
${var##*/} 获取文件名 hello.txt
${var##*.} 获取文件后缀txt,若后缀为file.tar.gz则可用${var#*.}
${var%/*} 获取文件所在目录结构 即/home/Project/Myjob