コンテンツにスキップ

GNU Core Utilities/dirname

出典: フリー教科書『ウィキブックス(Wikibooks)』

dirname コマンドは、指定したパス名からディレクトリ部分を抽出するためのコマンドです。ファイルパスからファイル名を取り除き、ディレクトリパスだけを表示します。GNU coreutils に含まれており、Linux では GNU 版が、FreeBSD では BSD 版が提供されています。基本的な動作は共通していますが、細かなオプションの違いがあります。

基本的な使い方

[編集]
dirname [パス名]

主なオプション(GNU coreutils版)

[編集]
主なオプション
オプション 説明
-z, --zero 出力を null 文字(\0)で区切る

[編集]

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

[編集]
dirname /home/user/docs/file.txt

/home/user/docs/file.txt のディレクトリ部分である /home/user/docs を表示。

null 文字で区切った出力

[編集]
dirname -z /home/user/docs/file.txt

/home/user/docs/file.txt のディレクトリ部分を null 文字で区切った出力を表示。

FreeBSD 版との違い

[編集]

FreeBSD でも dirname コマンドは提供されていますが、GNU coreutils 版といくつか違いがあります。

主な違い:

[編集]
  1. -z(null 文字区切り)のサポートがない
    • FreeBSD 版の dirname では、-z オプションがサポートされていません。
  2. GNU coreutils 版を FreeBSD で使う方法
    • coreutils パッケージをインストールすると gdirname という名前で GNU 版の dirname が使える。
    pkg install coreutils
    gdirname /home/user/docs/file.txt  # GNU版の dirname を使用
    

詳しくは、それぞれの環境で man dirname を確認してください。