dirname工具将它的参数作为一个路径名,并将该路径前缀(不包含最后部分的整个串)写到标准输出:
$ dirname a/b/c/d
a/b/c
如果只给dirname一个简单的文件名(不含字符/)作为参数,dirname将写一个.字符到标准输出:
$ dirname simple
.
用一个bash函数实现dirname。要确保当参数为/之类时,该函数也能很好地处理。
14. 用bash函数实现basename工具,它将路径名参数的最后部分写入到标准输出。举例来说,给定路径名a/b/c/d,basename将d写入到标准输出:
$ basename a/b/c/d
d
Linux的bashname工具有一个可选的第2参数。如果输入命令basename path suffix,basename将从path中删除suffix和前缀:
$ basename src/shellfiles/prog.bash .bash
prog
$ basename src/shellfiles/prog.bash .c
prog.bash