【轉載】Linux shell 提取文件名和目錄名

${}用於字符串的讀取,提取和替換功能,可以使用${} 提取字符串

1、提取文件名

[root@localhost log]# var=/dir1/dir2/file.txt

[root@localhost log]# echo ${var##*/}

file.txt

2、提取後綴

[root@localhost log]# echo ${var##*.}

txt

3、提取不帶後綴的文件名,分兩步

[root@localhost log]# tmp=${var##*/}

[root@localhost log]# echo $tmp

file.txt

[root@localhost log]# echo ${tmp%.*}

file

4、提取目錄

[root@localhost log]# echo ${var%/*}

/dir1/dir2

 

使用文件目錄的專有命令basename和dirname

1、提取文件名,注意:basename是一個命令,使用$(), 而不是${}

[root@localhost log]# echo $(basename $var)

file.txt

2、提取不帶後綴的文件名

[root@localhost log]# echo $(basename $var .txt)

file

3、提取目錄

[root@localhost log]# dirname $var

/dir1/dir2

[root@localhost log]# echo $(dirname $var)

/dir1/dir2

 

本文轉載出處: https://www.cnblogs.com/nzbbody/p/4391802.html 感謝原博主【Andy Niu】的總結。如有版權問題,請與我聯繫,謝謝。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章