dirname 命令
用途
将指定路径除了最后之外的部分写到标准输出。
语法
dirname Path
描述
dirname 命令读取指定路径名保留最后一个“/”(斜杠)及其后面的字符,删除其余部分,并写结果到标准输出。若是最后一个“/”后无字符,dirname 命令使用倒数第二个“/”,并忽略其后的全部字符。dirname 命令在建立路径名的时候听从如下规则:
若是 Path 参数为“//”(双斜杠),或者参数 Path 所有由斜杠组成,将其转换为单斜杠“/”。跳过步骤 2 到 7。
从指定路径删除尾部的“/”字符。
若是参数 Path 中没有剩下的“/”,则将路径转换成 . (点)。跳过步骤 4 到 7。
从路径中删除尾部的全部非斜杠字符。
若是剩下的路径为“//”(双斜杠),跳到步骤 6。
删除路径尾部的斜杠字符。
若是剩下的路径为空,则转换成单斜杠“/”。
例如,输入:
dirname //
结果为 /(斜杠)。输入:
dirname /a/b/
结果为:/a。输入:
dirname a
结果为 . (点)。输入:
dirname a/b
结果为路径名 a。
命令 dirname 和 basename 一般在 shell 内部命令替换使用,以指定一个与指定输入文件名略有差别的输出文件名。
退出状态
此命令返回如下退出值:
0 成功完成
>0 发生错误。
示例
要构造和另外一文件位于相同目录的一个文件名,请输入:
AOUTFILE=`dirname $TEXTFILE`/a.out
这将设置 shell 变量 AOUTFILE 做为文件 a.out 的名称,它与 TEXTFILE 位于同一目录。若是 TEXTFILE 是 /home/fran/prog.c,则 dirname $TEXTFILE 的值成了 /home/fran,且 AOUTFILE 变成了 /home/fran/a.out。
以上是AIX上dirname的man帮助,难道之前的这段代码自己就是一个不可到达的?也就是说dirname的输出不多是空?shell