ファイルとディレクトリの作成

ファイルとディレクトリの作成 とは

Linuxの基本操作、ファイルやディレクトリの作成コマンドを実際に操作して学びます。本レッスンでは、ファイルとディレクトリの作成 の基本から実際の使いどころまでを整理し、現場で迷わず使える形に落とし込みます。

なぜ重要か

プロジェクトの初期化、テストデータの生成、ログディレクトリの準備など、Linuxを使う場面で新しいものを作る操作は毎日のように発生します。本レッスンでは空ファイルを作る touch、ディレクトリを掘る mkdir の2コマンドを、オプション付きで実用的に使えるレベルに育てます。

手作業で深いディレクトリを1階層ずつ作っていては、生産性が出ません。スクリプトで一気に雛形を作る、CI でビルド出力先を準備するなど、mkdir -p とブレース展開を組み合わせるだけで多くの場面が短く書けるようになります。

基本構文

ターミナル

touch ファイル名 [ファイル名 ...] mkdir [-p] ディレクトリ名 [ディレクトリ名 ...]

主要オプションは下記のとおりです。

コマンドオプション役割
mkdir-p親ごと作る・既存でも怒らない
mkdir-v作ったパスを表示
mkdir-mパーミッションを指定
touch-t日時を指定
touch-a / -mアクセス/更新時刻のみ更新
touch-cファイルが無くても作らない

動作の図解

diagram (will load when visible)

代表例

ターミナル

# 単発で空ファイルを作る $ cd /tmp $ touch a.txt $ ls a.txt a.txt

ターミナル

# 深いディレクトリを一気に $ mkdir -p /tmp/proj/src/utils $ ls -d /tmp/proj/src/utils /tmp/proj/src/utils

ターミナル

# 複数ファイルを同時に作る + ブレース展開 $ cd /tmp && mkdir -p brace $ touch brace/{readme.md,index.js,style.css} $ ls brace index.js readme.md style.css

ターミナル

# パーミッション付きで作る $ mkdir -m 700 /tmp/private_dir $ ls -ld /tmp/private_dir | head -1

ブレース展開で雛形を一気に

bash の {} 展開と組み合わせると、フォルダ構成を一行で準備できます。

ターミナル

# Web プロジェクト雛形 mkdir -p /tmp/web/{src,public,tests} touch /tmp/web/{README.md,package.json,.gitignore}

複数階層も同様です。

ターミナル

# src/{components,utils,hooks} を一発で mkdir -p /tmp/web/src/{components,utils,hooks}

touch のもう一つの使い方

touch は既存ファイルのタイムスタンプ更新にも使えます。ビルドツールが「更新があったか」を判定するときの強制再実行や、Make のフラグ代わりとしても便利です。

ターミナル

touch /tmp/a.txt # アクセス時刻も更新時刻も「今」になる touch -t 202601010900 a.txt # 特定日時に設定

echo / printf でファイルを作るパターン

空でなく中身のあるファイルを一気に作りたいときは、リダイレクトの組み合わせが定番です。

ターミナル

echo "Hello" > /tmp/greeting.txt printf 'line1\nline2\n' > /tmp/two_lines.txt

複数行はヒアドキュメントが読みやすくなります。

ターミナル

cat > /tmp/config.yml <<'EOF' name: demo port: 8080 EOF

mkdir foo/bar/bazfoobar が無いとエラーになります。中間まで丸ごと作りたいときは必ず -p を付けるのが安全です。

「Make Directory With Parents」、覚えるべき頭文字は mkdir -p-p です。日々の打ち間違いがほとんど消えます。

空ディレクトリの削除

作りすぎたディレクトリを片付けるには、空のものだけを安全に消す rmdir も覚えておくと便利です。

ターミナル

mkdir -p /tmp/empty_dir rmdir /tmp/empty_dir # 空でないとエラーになるので安全

rmdir は中身があると失敗するため、rm -r ほど危険ではありません。

やってみよう

演習エディタで /tmp/playground の中に複数階層を作り、その末端に空ファイルを touch で配置してみましょう。ls -R /tmp/playground で全体を眺めると構造がはっきりします。

まとめ

  • touch で空ファイル、mkdir でディレクトリを作る
  • mkdir -p は親ごと作成・既存でもエラーにならない
  • ブレース展開で複数ファイル/フォルダを一行で生成できる
  • touch はタイムスタンプ更新の用途にも使える
  • 中身付きのファイルは echo > ファイル やヒアドキュメントで作る

次のレッスン

次は cpでファイルをコピーする で、Linuxの基本操作、ファイルやディレクトリの作成コマンドを実際に操作して学びます を学びます。

事前確認 — 進む前に次の 3 つができることを確認しましょう。

  1. touch / mkdir の要点を自分の言葉で説明できる
  2. このレッスンの最小コード (または操作手順) を見ずに書ける
  3. 練習問題やクイズで間違えた箇所を読み直して理解した

理解度チェック (30 秒)

Q. touch / mkdir とは何か、1 文で説明してください。

この章のポイント

A. 本文の「このレッスンで分かること」または冒頭の説明文を見直し、自分の言葉で要約できれば OK。詰まったら本レッスンの最初の H2 セクションを読み返してみましょう。

関連レッスン

課題

  1. mkdir -p を使う
  2. touch で2つのファイルを作る
  3. 最後に ls で確認

ヒント

script.sh
script.sh
学習モード
script.sh
ターミナル出力