linux basename命令的使用

perfychi發表於2014-02-20

From:http://www.blogjava.net/jasmine214--love/archive/2011/01/19/343237.html

linux basename命令的使用


用途

返回一個字串引數的基本檔名稱。

語法

basename String [ Suffix ]

描述

basename 命令讀取 String 引數,刪除以 /(斜槓) 結尾的字首以及任何指定的 Suffix 引數,並將剩餘的基本檔名稱寫至標準輸出。basename 命令應用以下建立基本檔名稱的規則:

  1. 如果 String 引數是 //(雙斜槓) 或如果 String 引數包含的都是斜槓字元,則將字串更改為單個 /(斜槓)。跳過步驟 2  4
  2. 從指定字串除去任何拖尾的 / 字元。
  3. 如果在 String 引數中剩餘任何 / 字元,則除去字串的字首直到(包含)最後一個 / 字元。
  4. 如果指定 Suffix 引數,且它和字串中的剩餘的字元相同,則不修改此字串。例如,輸入:
K > basename /u/dee/desktop/cns.boo cns.boo

結果是:

cns.boo

如果指定 Suffix 引數,且它和字串中所有字元都不相同,但和字串的字尾相同,則除去指定字尾。例如,輸入:

K > basename /u/dee/desktop/cns.boo .boo

結果是:

cns

不能在字串中查詢到指定的字尾不作為錯誤處理。

basename 和 dirname命令通常用於 shell 指令碼中的命令替換來指定和指定的輸入檔名稱有所差異的輸出檔名稱。

退出狀態

該命令返回以下退出值:

0                成功完成

0  發生錯誤

示例

  1. 要顯示一個 shell 變數的基本名稱,請輸入:
basename $WORKFILE

此命令顯示指定給 shell 變數 WORKFILE 的值的基本名稱。如果 WORKFILE 變數的值是 /home/jim/program.c 檔案,則此命令顯示 program.c

  1. 要構造一個和另一個檔名稱相同(除了字尾)的檔名稱,請輸入:
OFILE=`basename $1 .c`.o

此命令指定給 OFILE 檔案第一個位置上的引數($1)的值,但它的 .c 字尾更改至 .o。如果 $1 是 /home/jim/program.c 檔案,則 OFILE 成為program.o。因為 program.o 僅是一個基本檔名稱,它標識在當前目錄中的檔案。

注:`(重音符號)指定命令替換。
原文:http://monkeymusic.blog.163.com/blog/static/4797639200912533652666/

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/27042095/viewspace-1084408/,如需轉載,請註明出處,否則將追究法律責任。

相關文章