dirname 命令

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

相關文章
相關標籤/搜索