ファイルとディレクトリの作成
ファイルとディレクトリの作成 とは
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 | ファイルが無くても作らない |
動作の図解
代表例
ターミナル
# 単発で空ファイルを作る
$ 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/bazはfooかbarが無いとエラーになります。中間まで丸ごと作りたいときは必ず-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 つができることを確認しましょう。
- touch / mkdir の要点を自分の言葉で説明できる
- このレッスンの最小コード (または操作手順) を見ずに書ける
- 練習問題やクイズで間違えた箇所を読み直して理解した
理解度チェック (30 秒)
Q. touch / mkdir とは何か、1 文で説明してください。
A. 本文の「このレッスンで分かること」または冒頭の説明文を見直し、自分の言葉で要約できれば OK。詰まったら本レッスンの最初の H2 セクションを読み返してみましょう。
関連レッスン
課題
- mkdir -p を使う
- touch で2つのファイルを作る
- 最後に ls で確認