[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
dirname
: ファイル名から最後の要素を取り除くdirname
は、各 name からスラッシュで区切られた最後の要素を取り除いて、
残りのすべてを表示する。その際、最後の要素の左右どちらにあるスラッシュも除去される。
name を構成する文字列にスラッシュが一つも含まれない場合、
dirname
は (カレントディレクトリを意味する) ‘.’ を表示する。
書式:
dirname [option] name… |
name は実在するファイル名でなくても構わないが、実在するファイル名ならば、 この操作によって、最後の要素それ自体がディレクトリである場合も含めて、 最後の要素が存在するディレクトリが、利用できる形で表示される。
basename
と dirname
は合わせて設計されており、もし ‘ls "$name"’
が成功するならば、‘cd "$(dirname "$name")"; ls "$(basename "$name")"’
というコマンドの連続も成功するようになっている。
これは、ファイル名の末尾に改行が付いている場合を除いて、あらゆる場合にうまく行く。
POSIX によれば、name が ‘//’ の場合に、結果がどうなるかは、
実装側で決めてよいことになっている。
GNU の dirname
について言うと、// と /
とが別のものであるプラットフォームでは、結果は ‘//’ になり、
全く区別しないプラットフォームでは、結果は ‘/’ になる。
このプログラムでは、以下のオプションが使える。参照: 共通オプション.
各行の末尾に改行ではなく、ゼロバイト (ASCII NUL) を出力する。このオプションを使用すると、出力するデータの途中に改行が現れる場合でも、 他のプログラムがその出力を解析できるようになる。
終了ステータス 0 は成功を示し、0 以外の値は失敗を示す。
用例:
# "/usr/bin" を出力する。 dirname /usr/bin/sort dirname /usr/bin//.// # "dir1", "dir2" の順に出力する。 dirname dir1/str dir2/str # "." を出力する。 dirname stdio.h |
This document was generated on June 7, 2022 using texi2html 1.82.