获取文件名与目录名的几种方式

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

原文地址:https://www.cnblogs.com/mianbaoshu/p/11766275.html