dirnameコマンドとは?
「dirname」は、ディレクトリ名とファイル名を含むパス名(/mydir/myfileなど)から、ディレクトリ部分だけを取得するコマンドです。
パス名からディレクトリ部分を取得する
「dirname パス名」でパス付きのファイル名からディレクトリ名部分を取得します。例えば「dirname /dir1/file.txt」ならば「/dir1」、「dirname /dir1/dir2/file.txt」であれば「/dir1/dir2」となります。
dirnameは、正確には「パスの最後のスラッシュ(/記号)以降を取り除く」動作をします ※1。このため「dirname /usr/bin/」または「dirname /usr/bin」と指定して実行した場合の結果は「/usr」となります。
※1 ただし、「dirname /」の結果は「/」となる。指定したパスがディレクトリ部分を含んでいない場合は「.」となる。
dirnameは例えば、whichコマンドで取得した外部コマンドのフルパスを加工する際に役立ちます。「dirname which コマンド名
」のように指定することで、見つけたコマンドのディレクトリ名部分だけを取得できます。
参考