basename コマンド

basenameとは、パス名からディレクトリ名を削除して、ファイル名だけを抽出するLinuxコマンドである。

basename path [suffix]

引数にパス名だけを指定した場合、ファイル名が抽出される。

$ basename /home/tsuka/example.c
example.c
$ basename ./tsuka/example.h
example.h
$ basename tsuka/example.o
example.o
$

拡張子無し

引数にパス名とサフィックス(接尾辞)を指定した場合、ファイル名を抽出したうえ、サフィックスが削除される。

たとえば、サフィックスにファイル拡張子を指定すると、パス名から拡張子無しのファイル名が抽出される。

$ basename /home/tsuka/example.c .c
example
$ basename ./tsuka/example.h .h
example
$ basename tsuka/example.o .o
example
$

オプション

basenameコマンドには次に示すオプションを指定できる。

-a
--multiple
複数のパス名を指定できるようになり、それぞれのファイル名を出力する。
$ basename -a /home/tsuka/example.c /home/tsuka/example.h
example.c
example.h
-s
--suffix=SUFFIX
削除するサフィックスを指定する。-a オプションと共に指定する。
$ basename -s .c -a /home/tsuka/foo.c /home/tsuka/bar.c
foo
bar
-z
--zero
出力の最後に改行を付けない。
$ basename -z -a /home/tsuka/example.c /home/tsuka/example.h
example.cexample.h
--help
ヘルプを表示して終了する。
--version
バージョン情報を出力して終了する。

パス名からディレクトリ名を抽出する

パス名からディレクトリ名だけを抽出するには、dirname コマンドを使う。

$ dirname /home/tsuka/example.c
/home/tsuka

入力

なし

出力

標準出力

Linuxコマンド