dirname

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コマンドには次に示すオプションを指定できる。

-z
出力の最後に改行を付けない。
$ dirname /home/tsuka /home/nagi
/home
/home
$ dirname -z /home/tsuka /home/nagi
/home/home
--zero
出力の最後に改行を付けない。GNU 形式のオプションであり、POSIX 形式の -z オプションと機能は同じである。
$ dirname --zero /home/tsuka /home/nagi
/home/home
--help
ヘルプを表示して、コマンドを終了する。
--version
バージョン情報を出力して、コマンドを終了する。

パス名からファイル名を抽出する

パス名からファイル名だけを抽出するには、basename コマンドを使う。

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

シェルスクリプトでの利用

シェルスクリプトで dirname コマンドを利用すると、シェルスクリプトのディレクトリを取得することができる。

#!/bin/bash
dirname $0

ただし、シェルスクリプトを相対パスで指定して実行した場合は、シェルスクリプトのディレクトリも相対パスで取得される。

入力

なし

出力

標準出力

Linuxコマンド

参考文献

GNU (2023) dirname invocation