Caution

お使いのブラウザはJavaScriptが実行できない状態になっております。
当サイトはWebプログラミングの情報サイトの為、
JavaScriptが実行できない環境では正しいコンテンツが提供出来ません。
JavaScriptが実行可能な状態でご閲覧頂くようお願い申し上げます。

  1. トップページ
  2. Bash辞典
  3. mkdir / rmdir / touch

mkdir / rmdir / touch

『mkdir』はディレクトリの作成、『rmdir』は空ディレクトリの削除、『touch』はファイルの作成またはタイムスタンプの更新を行うコマンドです。ファイル・ディレクトリの準備作業によく使います。

構文
mkdir [オプション] ディレクトリ名
rmdir [オプション] ディレクトリ名
touch [オプション] ファイル名
オプション一覧
コマンド / オプション概要
mkdir ディレクトリディレクトリを作成します。
mkdir -p パス中間ディレクトリも含めて再帰的に作成します。すでに存在してもエラーになりません。
mkdir -m モード ディレクトリ作成時にパーミッションを指定します(例:mkdir -m 755 dir)。
rmdir ディレクトリ空のディレクトリを削除します。中身があるとエラーになります。
rmdir -p パス指定パスの空ディレクトリを再帰的に削除します。
touch ファイルファイルが存在しなければ空ファイルを作成します。存在すれば最終更新時刻を現在時刻に更新します。
touch -t 日時 ファイルタイムスタンプを指定した日時に設定します(形式:[[CC]YY]MMDDhhmm[.ss])。
touch -a ファイルアクセス時刻のみを更新します。
touch -m ファイル更新時刻のみを更新します。
サンプルコード

以下のディレクトリ構造を例に説明します。

📁 ~/work/ 📁 empty_dir/

ディレクトリを作成します。

mkdir project
ls
empty_dir  project

複数のディレクトリを一度に作成します。

mkdir src tests docs
ls
docs  empty_dir  project  src  tests

中間ディレクトリも含めて一気に作成します。『-p』を付けると途中のディレクトリが存在しなくても自動で作られます。

mkdir -p project/src/components
ls project/src/
components

空ファイルを作成します。

touch index.html style.css script.js
ls
docs  empty_dir  index.html  project  script.js  src  style.css  tests

空のディレクトリを削除します。中身があるとエラーになります。

rmdir empty_dir
rmdir project
rmdir: failed to remove 'project': Directory not empty

スクリプト内でよく使うパターンです。『mkdir -p』は既にディレクトリが存在してもエラーにならないため、冪等(べきとう)な処理として安全に使えます。

mkdir -p /var/log/myapp
touch /var/log/myapp/app.log
概要

『mkdir -p』はスクリプト内で「ディレクトリがなければ作る」という処理によく使います。すでに存在していてもエラーにならないため、冪等(べきとう)な処理として安全に書けます。中身のあるディレクトリを削除したい場合は、『rmdir』ではなく『rm -r』を使います。

『touch』は主に「空のファイルを用意する」「ビルドシステムに変更を知らせるためタイムスタンプを更新する」という2つの用途で使われます。

記事の間違いや著作権の侵害等ございましたらお手数ですがまでご連絡頂ければ幸いです。