mkdir
mkdir — ディレクトリを作る
説明
bool mkdir ( string pathname [, int mode [, bool recursive [, resource context]]] )pathnameで指定されたディレクトリを 作成しようと試みます。
モードは 8 進数で指定する必要があり、このため、 先頭にゼロを付ける必要があることに注意してください。 mode は、カレントの umask でも修正されます。 umask は、umask() により変更可能です。
注意: Windowsではモードは無視されます。またPHP4.2.0以降ではオプションとなります。
モードは 0777 がデフォルトです。 これは最も緩やかなアクセス制限を意味します。 モードに関する詳細は chmod() をご覧ください。 例 624. mkdir() の例
<?php
mkdir ("/path/to/my/dir", 0700);
?>
成功した場合に TRUE を、失敗した場合に FALSE を返します。
注意: PHP 5.0.0 以降、mkdir() は いくつかの URL ラッパーを併用することが可能です。 mkdir() をサポートしているラッパーの一覧については、 付録 M. サポートされるプロトコル/ラッパー を参照ください。
注意: コンテキストのサポートは、 PHP 5.0.0 で追加されました。contexts の説明に関しては、 ストリーム を参照してください。
注意: パラメータ recursive は、 PHP 5.0.0 で追加されました。
注意: セーフモード が有効の場合、PHP は、 操作を行うディレクトリが、実行するスクリプトと同じ UID (所有者)を有しているか どうかを確認します。
rmdir() も参照ください。
mkdir
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2026/05/31 16:55 UTC 版)
|
|
mkdirコマンド
|
|
| 開発元 | 多くのオープンソースソフトウェアと商用ソフトウェアの開発者・組織 |
|---|---|
| 対応OS | UNIX, Unix系, Plan 9, Inferno, DOS, MSX-DOS, FlexOS, OS/2, Windows, ReactOS, KolibriOS |
| プラットフォーム | クロスプラットフォーム |
| 種別 | コマンド |
| ライセンス | GNU coreutils: GPLv3+ MS-DOS, Plan 9: MIT FreeDOS: GPLv2+ ReactOS: GPLv2 |
mkdirは、Unix系やDOS(OS/2・Microsoft Windowsなどを含む)でディレクトリを作成するコマンドである。"make directory"の略。DOSでは md という略称がエイリアスとなっているため、短いそちらが使われることが多い。POSIXのシステムコールの1つでもある。
使用法
通常の使用法は単に次のように新ディレクトリ名を指定する。
mkdir name_of_directory
ここで name_of_directory は作成したいディレクトリの名前である。このように入力すると、新ディレクトリがカレントディレクトリの下に作成される。Unix系では複数のディレクトリ名を指定でき、その場合 mkdir コマンドが指定された全てのディレクトリを作成しようとする。
オプション
Unix系OSでは、mkdir にオプションを指定できる。最も一般的なオプションは次の3つである。
-p: パス名形式でディレクトリ名を指定し、パス名の途中のディレクトリが存在しない場合はそれらも新規作成する。パス名に既存のディレクトリが含まれていてもエラーにはならない。-v: 実際に作成したディレクトリ名を表示する。-pと共に使うことが多い。-m: 作成するディレクトリのファイルパーミッションを八進表記で指定する。
-pはmkdirを使って複雑なディレクトリ階層を構成する際によく使われ、必要なディレクトリがあるかないかを気にしなくてもよいため便利である。-mはシェルスクリプト内で使う一時的なディレクトリを他からいじられないようにするときなどによく使う。
例
-p を使った例を示す。
mkdir -p /tmp/a/b/c
/tmp/a が既存のディレクトリで /tmp/a/b が存在しない場合、mkdir はまず /tmp/a/b を作成してから /tmp/a/b/c を作成する。
シェルの機能を使うと、コマンド1つでさらに複雑なディレクトリ階層を作成できる。
mkdir -p tmpdir/{trunk/syntaxhighlights/{includes,docs},branches,tags}
このコマンド行で次のようなディレクトリ階層ができる。
tmpdir
________|______
| | |
branches tags trunk
|
syntaxhighlights
____|_____
| |
includes docs
歴史
初期のUNIX(4.1BSDや System V の初期のバージョン)ではカーネルに mkdir システムコールがなかったため、rootのsetuid属性がこのコマンドに付与されていた。代わりにmknodシステムコールでディレクトリを生成し、コマンド内で . や .. といったディレクトリと一つ一つリンクしていた。
システムコール
POSIXにおける関数プロトタイプ宣言は以下のような形式である[1]。
#include <sys/stat.h>
int mkdir(const char *path, mode_t mode);
Microsoft Visual C++のCランタイムライブラリには、Windows APIを利用して実装された、類似のインターフェイスを持つ関数_mkdir()が定義されている(OSの機能的な差異から、modeに相当する引数は持たない)[2]。グローバルスコープを持ち、アンダースコアで始まる命名規則が使われており、これは処理系のために予約された名前を使用していることを示している。POSIXと同名のシンボルとしてmkdirマクロも定義されているが、ISO標準ではないため、非推奨となっている[3]。
脚注
関連項目
外部リンク
- Mkdir | Microsoft Learn - Microsoft Windows XP関連の旧リファレンス
- mkdir | Microsoft Learn - cmd.exeおよびバッチファイルで利用可能なWindowsコマンドのリファレンス
mkdir(1)– JM Project Linux User Commands マニュアルmkdir(1)– FreeBSD General Commands Manual Pages (en)
mkdir
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/01/13 01:34 UTC 版)
「Apache Ant」の記事における「mkdir」の解説
※この「mkdir」の解説は、「Apache Ant」の解説の一部です。
「mkdir」を含む「Apache Ant」の記事については、「Apache Ant」の概要を参照ください。
- MKDIRのページへのリンク