dirnameコマンドの例 | |
| 開発者 | さまざまなオープンソースおよび商用開発者 |
|---|---|
| オペレーティング·システム | Unix、Unix ライク、IBM i |
| プラットフォーム | クロスプラットフォーム |
| タイプ | 指示 |
| ライセンス | コアユーティリティ: GPLv3+ |
dirnameは、 UnixおよびUnix 系オペレーティング システム上の標準コンピュータ プログラムです。 にパス名が指定されると、最後のスラッシュ ( ) 文字で始まるサフィックスを削除し、その結果を返します。は、 Single UNIX 仕様で説明されており、主にシェル スクリプトで使用されます。
dirname'/'dirname
歴史
GNU coreutilsdirnameにバンドルされているバージョンは、David MacKenzie と Jim Meyering によって作成されました。[1]このコマンドは、一般的な GNU Unix ライクなユーティリティのネイティブWin32ポートのUnxUtilsコレクションの一部として、Microsoft Windows用の個別のパッケージとして利用できます。 [2] dirnameコマンドは、 IBM iオペレーティング システムにも移植されています。[3]
使用法
の単一 UNIX 仕様は次のdirnameとおりです。
dirname 文字列
string- パス名
$ dirname /home/martin/docs/base.wiki /home/martin/docs
$ dirname /home/martin/docs/. /home/martin/docs $ dirname /home/martin/docs/ /home/martin $ dirname base.wiki. $ dirname / /
パフォーマンス
dirnameはオペランドを1つしか受け入れないため、シェルスクリプトの内部ループ内で使用するとパフォーマンスに悪影響を与える可能性があります。
ファイルの読み取り中にdirname " $file "を実行done < some-input
上記の抜粋では、入力行ごとに別々のプロセスが呼び出されます。このため、通常はシェル置換が代わりに使用されます。
echo " ${ファイル%/* } " ;
または相対パス名も処理する必要がある場合
if [ -n " ${ file ##*/* } " ] ; then echo "." else echo " ${ file %/* } " ; fi
これらは、dirname とは異なる方法で末尾のスラッシュを処理することに注意してください。
誤解
末尾のスラッシュで終わるパスはディレクトリであると考えるかもしれません。しかし実際には、末尾のスラッシュはディレクトリ内のすべてのファイルを表します。
/home/martin/docs/ です。
パスをディレクトリとして表す正しい方法は、末尾にスラッシュとピリオドを使用することです。[誰によると? ] [引用が必要]
参照
参考文献
外部リンク
- : パス名のディレクトリ部分を返す – シェルおよびユーティリティ リファレンス、The Single UNIX 仕様、バージョン 4、The Open Group
- – Linuxユーザーコマンドマニュアル
- – OpenBSD一般コマンドマニュアル
