从给定的包含绝对路径的文件名中去除文件名(非目录的部分),然后返回剩下的路径(目录的部分)
dirname String
(1)# dirname /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts (2)# dirname /boot/grub/grub.conf /boot/grub (3)# dirname /etc/inittab /etc (4)# echo `pwd` && dirname modprobe.conf /etc . (5)#echo `pwd` && dirname sysconfig/network-scripts/ /etc sysconfig
返回一个字符串参数的基本文件名称。
basename String [ Suffix ]
basename 命令读取 String 参数,删除以 /(斜杠) 结尾的前缀以及任何指定的 Suffix 参数,并将剩余的基本文件名称写至标准输出。
basename 命令应用以下创建基本文件名称的规则:
(1)没有Suffix 参数
如果指定 Suffix 参数,且它和字符串中的剩余的字符相同,则不修改此字符串。例如,输入:
[centos@s202 /]$ basename /home/centos/for99.sh for99.sh for99.sh
如果指定 Suffix 参数,且它和字符串中所有字符都不相同,但和字符串的后缀相同,则除去指定后缀。例如,输入:
[centos@s202 /]$ basename /home/centos/for99.sh sh for99. [centos@s202 /]$ basename /home/centos/for99.sh .sh for99
不能在字符串中查找到指定的后缀不作为错误处理。
[centos@s202 /]$ basename /home/centos/for99.sh for99.sh for99.sh [centos@s202 /]$ basename /home/centos/for99.sh for91.sh for99.sh [centos@s202 /]$ basename /home/centos/for99.sh for91.ssh for99.sh
basename 和 dirname命令通常用于 shell 脚本中的命令替换来指定和指定的输入文件名称有所差异的输出文件名称。
该命令返回以下退出值:
0 成功完成
〉0 发生错误
示例
basename $WORKFILE
此命令显示指定给 shell 变量 WORKFILE 的值的基本名称。如果 WORKFILE 变量的值是 /home/jim/program.c 文件,则此命令显示 program.c。
OFILE=`basename $1 .c`.o
此命令指定给 OFILE 文件第一个位置上的参数($1)的值,但它的 .c 后缀更改至 .o。如果 $1 是 /home/jim/program.c 文件,则 OFILE 成为 program.o。因为 program.o 仅是一个基本文件名称,它标识在当前目录中的文件。
原文:https://www.cnblogs.com/wqbin/p/10891023.html