dirname – パスからファイル名を除去してディレクトリ部分を取得するコマンド

カラム/フィールド操作
スポンサーリンク

dirname コマンドは、指定した ファイルパスからファイル名部分を取り除き、ディレクトリパスのみを表示 するコマンドです。
シェルスクリプトでファイルの配置先ディレクトリを取得するときによく利用されます。

構文(Syntax)

dirname パス

主なオプション一覧

オプション説明使用例
(なし)パスからディレクトリ部分を出力dirname /home/user/file.txt
-z出力の区切りを改行ではなく NUL にするdirname -z /home/user/file.txt
--helpヘルプを表示dirname --help
--versionバージョン情報を表示dirname --version

実行例

ディレクトリ部分を取得

dirname /home/user/file.txt

出力:

/home/user

カレントディレクトリを指す場合

dirname file.txt

出力:

複数階層のパスから取得

dirname /var/log/nginx/access.log

出力:

/var/log/nginx

区切りを NUL にする(パイプ処理向け)

dirname -z /etc/hosts | xargs -0 echo

出力:

/etc

エラー例(引数なし)

dirname

出力例:

dirname: missing operand
Try 'dirname --help' for more information.

関連コマンド

  • basename : パスからファイル名部分を取得
  • pwd : カレントディレクトリを表示
  • realpath : 絶対パスを表示
  • readlink : シンボリックリンクの実体パスを表示

備考

  • dirname は GNU Coreutils に含まれていますが、多くのシェルではパラメータ展開(${var%/*})を使って同等の処理が可能です。
  • パスが / の場合は / を返し、ファイル名のみの場合は . を返します。
  • スクリプトでよく使われるパターン: DIR="$(dirname "$0")" → 実行中スクリプトのディレクトリを取得する方法

参考

スポンサーリンク
Bash玄

はじめまして!Bash玄です。

エンジニアとしてシステム運用に携わる中で、手作業の多さに限界を感じ、Bashスクリプトを活用して業務を効率化したのがきっかけで、この道に入りました。「手作業は負け」「スクリプトはシンプルに」をモットーに、誰でも実践できるBashスクリプトの書き方を発信しています。

このサイトでは、Bashの基礎から実践的なスクリプト作成まで、初心者でもわかりやすく解説しています。少しでも「Bashって便利だな」と思ってもらえたら嬉しいです!

# 好きなこと
- シンプルなコードを書くこと
- コマンドラインを快適にカスタマイズすること
- 自動化で時間を生み出すこと

# このサイトを読んでほしい人
- Bashに興味があるけど、何から始めればいいかわからない人
- 定型業務を自動化したい人
- 効率よくターミナルを使いこなしたい人

Bashの世界に一歩踏み出して、一緒に「Bash道」を極めていきましょう!

Bash玄をフォローする

コメント