dirnameとは、パス名からファイル名を削除して、ディレクトリ名だけを抽出する Linux/Unix コマンドである。
dirname path ...
$ dirname /home/tsuka/example.c
/home/tsuka
$ dirname ./tsuka/example.h
./tsuka
$ dirname tsuka/example.o
tsuka
$
なお、dirname
コマンドは引数に渡されたパスの存在チェックは行わない。dirname
コマンドの引数に存在しないパスを渡しても、エラーは発生しない。
dirnameコマンドには次に示すオプションを指定できる。
$ dirname /home/tsuka /home/nagi
/home
/home
$ dirname -z /home/tsuka /home/nagi
/home/home
$ dirname --zero /home/tsuka /home/nagi
/home/home
パス名からファイル名だけを抽出するには、basename
コマンドを使う。
$ basename /home/tsuka/example.c
example.c
シェルスクリプトで dirname コマンドを利用すると、シェルスクリプトのディレクトリを取得することができる。
#!/bin/bash
dirname $0
ただし、シェルスクリプトを相対パスで指定して実行した場合は、シェルスクリプトのディレクトリも相対パスで取得される。
なし
標準出力
GNU (2023) dirname invocation