Linux shell 获取变量部分路径、文件名、文件后缀

以 make 文件为例:

 

一、路径拆分:

file=/usr/bin/make

[root@CentOs7]# echo ${file%*/}
/usr/bin/make

[root@CentOs7]# echo ${file%%*/}
/usr/bin/make

[root@CentOs7]# echo ${file%%/*}

[root@CentOs7]# echo ${file%/*}
/usr/bin

[root@CentOs7]# echo ${file#/*}
usr/bin/make

[root@CentOs7]# echo ${file##/*}
输出空内容

[root@CentOs7]# echo ${file##*/}
make

[root@CentOs7]# echo ${file#*/}
usr/bin/make

  

file=/usr/share/man/man1/make.1.gz

[root@CentOs7]# echo ${file%*/}
/usr/share/man/man1/make.1.gz

[root@CentOs7]# echo ${file%%*/}
/usr/share/man/man1/make.1.gz

[root@CentOs7]# echo ${file%%/*}

[root@CentOs7]# echo ${file%/*}
/usr/share/man/man1

[root@CentOs7]# echo ${file#/*}
usr/share/man/man1/make.1.gz

[root@CentOs7]# echo ${file##/*}
输出空内容

[root@CentOs7]# echo ${file##*/}
make.1.gz

[root@CentOs7]# echo ${file#*/}
usr/share/man/man1/make.1.gz

  

二、文件名拆分

file=make.tar.gz

echo ${file%.*}
make.tar

echo ${file%%.*}
make

echo ${file%*.}
make.tar.gz

echo ${file%%*.}
make.tar.gz

echo ${file#.*}
make.tar.gz

echo ${file##.*}
make.tar.gz

echo ${file#*.}
tar.gz

echo ${file##*.}
gz

  

 

  

输出空内容
posted @ 2023-02-24 21:05  悟透  阅读(654)  评论(0)    收藏  举报