在shell编程中,对于path file name,我们可能需要从该字符串中提取出文件所在路径/文件名/文件后缀名/文件前缀,方法实现如下所示:
$ pfName=/home/user/test.txt
# 获取全路径文件名
$ echo $pfName
/home/user/test.txt
# 获取文件名
$ echo ${pfName##*/}
test.txt
# 获取该文件的位置
$ echo ${pfName%/*}
/home/user
# 获取文件的后缀名
$ echo ${pfName##*.}
txt
# 仅仅获取文件的前缀
$ echo ${pfName##*/} | sed -r 's/^(.*)\..*$/\1/g'
readline 和 basename命令的使用
在sysfs目录下描述该设备的子目录中,有一个到包含这个驱动的模块的符号链接module。我们要的是这个符号链接的目标。可以通过readline命令得到它,输出像这样:
$ readlink /sys/class/net/eth0/device/driver/module<