basename - ファイル名からサフィックスとディレクトリを除く

basename

basenameコマンドは、ファイル名から.txtや.c等のサフィックスを取り除いたり、dir1/file.txtというファイルパスからdir1/を取り除くことができます。

basenameコマンドとは

basenameコマンドは、.txtや.c等のサフィックス部分の文字列を取り除いたり、ファイル名ではないディレクトリ部分の文字列を取り除く事ができます。

また、ファイル名ではなく、ディレクトリ部分の文字列が欲しい場合は、dirnameコマンドがあります。

basenameコマンドの利用例

ファイル名を取得
(オプションなし)

basenameコマンドは、オプションなしで使用するとディレクトリ部分の文字列を取り退きます。しかし、サフィックスはそのまま表示されます。

コマンド例

実行結果

ファイル名からサフィックスを取り除く

ファイル名からサフィックスを取り除く方法は2つあります。
ファイル名の後にサフィックスを記述する方法とオプションでサフィックスを指定する方法です。

ファイル名の後にサフィックスを記述する方法

ファイル名の後にサフィックスを記述することで、そのサフィックスを取り除くことができます。

コマンド例

実行結果

オプションでサフィックスを指定する方法
(-sオプション)

-sオプションでサフィックスを指定することで、そのサフィックスを取り除くことができます。

コマンド例

実行結果

ファイル名を複数指定
(-aオプション)

-aオプションは、ファイル名を複数指定することができます。-aオプションを利用する場合にサフィックスを取り除く場合は-sオプションを利用します。

コマンド例

$fileの内容

$file2の内容

実行結果

カレントディレクトリにfile.txtやfile2.txtがある場合、フルパスでの変数代入は簡易的に以下のようなコマンドでできます。
コマンド例

または

参考

外部リンクGnu Coreutils

外部リンクGnu Coreutils日本語版