パスからディレクトリ名を取得するには (dirname)

ディレクトリの部分を取り出す方法。ファイルパスからファイル名の部分を取り出す方法はbasename

PHP

echo dirname("/aaa/bbb"); # => /aaa
echo dirname("/aaa/");    # => /
echo dirname("/aaa");     # => /
echo dirname("aaa");      # => .

dirname 関数 | PHP Manual
http://php.net/manual/ja/function.dirname.php

Python

import os

print os.path.dirname(path)

Ruby / JRuby

p File.dirname("/aaa/bbb") # => "/aaa"
p File.dirname("/aaa/")    # => "/"
p File.dirname("/aaa")     # => "/"
p File.dirname("aaa")      # => "."

basename の情報も必要であれば、それらを同時に取得できる File#split というのもある。

p File.split("/aaa/bbb") # => ["/aaa", "bbb"]
p File.split("/aaa/")    # => ["/", "aaa"]
p File.split("/aaa")     # => ["/", "aaa"]
p File.split("aaa")      # => [".", "aaa"]

Perl

use File::Basename qw/dirname/;

print dirname("/aaa/bbb") . "\n"; # => /aaa
print dirname("/aaa/") . "\n";    # => /
print dirname("/aaa") . "\n";     # => /
print dirname("aaa") . "\n";      # => .

sh (シェルスクリプト)

dirnameコマンドは引数で与えられたパスのディレクトリ名を標準出力に出力する。

dirname /aaa/bbb # => /aaa
dirname /aaa/    # => /
dirname /aaa     # => /
dirname aaa      # => .

シンボリックリンクを解決したり相対パスを絶対パスに変換したディレクトリ名を取得するには こちらを参照。

このサイトは筆者(hydrocul)の個人メモの集合です。すべてのページは永遠に未完成です。
スポンサーリンク