Posted on 2009-08-28 13:24
Prayer 閱讀(3228)
評論(0) 編輯 收藏 引用 所屬分類:
Shell
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的輸出不可能是空?