basename命令

basename命令用于获取路径中的文件名或路径名,还可以对末尾字符进行删除。

语法格式

1
2
basename NAME [SUFFIX]
basename OPTION... NAME...

参数说明

参数 说明
-a 支持多个路径
-s 删除后缀
-z 输出每行末尾为NUL,而不是换行符。

实例

获取路径末尾的文件名或路径名

1
2
3
4
[root@test ~]# basename /root/users.txt 
users.txt
[root@test ~]# basename /etc/sysconfig/
sysconfig

去掉末尾的指定字符

1
2
3
4
5
6
7
8
9
10
11
# 去掉扩展名
[root@test ~]# basename /root/users.txt .txt
users
[root@test ~]# basename -s .txt /root/users.txt
users

# 去掉指定的字符
[root@test ~]# basename /root/anaconda-ks.cfg da-ks.cfg
anacon
[root@test ~]# basename -s da-ks.cfg /root/anaconda-ks.cfg
anacon

获取多个路径的文件名或者路径名

1
2
3
[root@test ~]# basename -a /root/users.txt /etc/sysconfig/
users.txt
sysconfig

dirname命令

dirname命令用于获取给定路径的路径部分。

语法格式

1
dirname [OPTION] NAME...

Shell脚本常用语返回脚本文件所在路径。

1
cd `dirname $0`

实例

1
2
3
# 获取网卡配置文件所在路径
[root@test ~]# dirname /etc/sysconfig/network-scripts/ifcfg-ens192
/etc/sysconfig/network-scripts