basename コマンド

目的

文字列パラメーターの基本ファイル名を戻します。

構文

basename StringSuffix ]

説明

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 コマンドは、指定された入力ファイル名と多少異なる出力ファイル名を指定するためにシェル・スクリプト内で一般的に使われる内部コマンド置換です。

終了状況

このコマンドは次の終了値を戻します。

項目 説明
0 正常終了。
>0 エラーが発生しました。

  1. シェル変数のベース名を表示するには、次のように入力します。
    basename $WORKFILE
    このコマンドは、シェル変数 WORKFILE に割り当てられた値のベース名を表示します。WORKFILE 変数の値が /home/jim/program.c ファイルの場合は、program.c が表示されます。
  2. 接尾部を除いて、別のファイル名と同じファイル名を作成するには、次のように入力します。
    OFILE=`basename $1 .c`.o
    このコマンドは、最初の定位置パラメーター ($1) の値を OFILE ファイルに割り当てますが、接尾部 .c.o に変更されます。 $1/home/jim/program.c ファイルの場合は、OFILEprogram.o になります。program.o は、 ベース・ファイル名でしかないので、現行ディレクトリーの中のファイルを識別します。

    注: ` (バッククォート) は、コマンド置換を指定します。

ファイル

項目 説明
/usr/bin/basename basename コマンドが入っています。