basename コマンド
目的
文字列パラメーターの基本ファイル名を戻します。
構文
basename String [ Suffix ]
説明
basename コマンドは、String パラメーターを読み取り、/ (スラッシュ) で終る接頭部と指定された Suffix パラメーターがあれば削除し、残りの基本ファイル名を標準出力に書き出します。 basename コマンドでは、基本ファイル名の作成時に次のルールが適用されます。
- String パラメーターが // (ダブルスラッシュ) の場合、または String パラメーターが複数の / (スラッシュ) 文字のみからなる場合は、その文字列を / (スラッシュ) に変更します。ステップ 2 から 4 は飛ばします。
- 指定された文字列に後続の / 文字があれば、すべて除去します。
- String パラメーター内に / 文字が残っている場合は、その文字列の接頭部を最後の / 文字まで除去します。
- Suffix パラメーターを指定した場合に、そのパラメーターが文字列に残っている文字と同じであれば、その文字列は変更されません。例えば、次のように入力します。
この文字列は以下のようになります。K > basename /u/dee/desktop/cns.boo cns.boo
Suffix パラメーターを指定した場合に、そのパラメーターが文字列内のすべての文字と一致しなくても、文字列内の接尾部と同じであれば、指定した接尾部が除去されます。例えば、次のように入力します。cns.boo
この文字列は以下のようになります。K > basename /u/dee/desktop/cns.boo .boo
指定された接尾部が文字列内で見つからなくても、エラーとは見なされません。cns
basename および dirname コマンドは、指定された入力ファイル名と多少異なる出力ファイル名を指定するためにシェル・スクリプト内で一般的に使われる内部コマンド置換です。
終了状況
このコマンドは次の終了値を戻します。
| 項目 | 説明 |
|---|---|
| 0 | 正常終了。 |
| >0 | エラーが発生しました。 |
例
- シェル変数のベース名を表示するには、次のように入力します。
このコマンドは、シェル変数 WORKFILE に割り当てられた値のベース名を表示します。WORKFILE 変数の値が /home/jim/program.c ファイルの場合は、program.c が表示されます。basename $WORKFILE - 接尾部を除いて、別のファイル名と同じファイル名を作成するには、次のように入力します。
このコマンドは、最初の定位置パラメーター ($1) の値を OFILE ファイルに割り当てますが、接尾部 .c は .o に変更されます。 $1 が /home/jim/program.c ファイルの場合は、OFILE は program.o になります。program.o は、 ベース・ファイル名でしかないので、現行ディレクトリーの中のファイルを識別します。OFILE=`basename $1 .c`.o注: ` (バッククォート) は、コマンド置換を指定します。
ファイル
| 項目 | 説明 |
|---|---|
| /usr/bin/basename | basename コマンドが入っています。 |