basename - ファイル名からディレクトリ部分を取り除く

スポンサーリンク

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

basenameコマンドとは

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

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

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

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

コマンド例

実行結果

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

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

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

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

コマンド例

実行結果

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

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

コマンド例

実行結果

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

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

コマンド例

変数の内容

実行結果

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

または

参考

Gnu Coreutils

Gnu Coreutils日本語版