ファイルとディレクトリの作成
1 階層ずつ掘るのはつらい
/tmp/report/2026/05 という置き場所を用意したいとします。素直に一番下だけを指定すると、こうなります。
ターミナル
mkdir /tmp/report/2026/05
# mkdir: cannot create directory '/tmp/report/2026/05': No such file or directorymkdir は 1 段だけ作るコマンドなので、途中の report や 2026 が無いと失敗します。3 回に分けて打てば作れますが、階層が深くなるほど手が止まります。
ターミナル
mkdir -p /tmp/report/2026/05-p を付けると、途中に足りない段があればまとめて作ってくれます。しかも、すでに存在していてもエラーになりません。「無ければ作る、あればそのまま」という意味になるので、置き場所を用意する場面ではほぼ常に -p を付けます。
中身の無いファイルを、先に置いておく
ターミナル
touch /tmp/report/2026/05/draft.txttouch は空のファイルを作ります。中身はまだ無くても、置き場所と名前だけ先に決めておきたいときに使います。ファイル名を空白で区切って並べれば、一度に複数作れます。
ターミナル
ls -l /tmp/report/2026/05
# -rw-r--r-- 1 deploy deploy 0 Aug 26 14:20 draft.txt作った直後はサイズが 0 です。作ったつもりで場所を間違えていることがよくあるので、ls で目視するところまでを 1 セットにしておくと安心できます。
同じ名前がすでにあったら
touch は、そのファイルがすでにある場合、中身にはいっさい触れず、最終更新日時だけを今にします。うっかり打っても書きかけの内容が消える心配はありません。この性質は「更新があったことにして、ビルドをやり直させる」といった用途にも使われます。
mkdir は逆に、同じ名前のディレクトリがあると File exists と言って止まります。毎回それでは扱いにくいので、ここでも -p を付けておけば、黙って何もせずに次の行へ進みます。同じ手順を何度流しても結果が変わらない、というのはスクリプトを書くうえで大切な性質です。
課題
- mkdir -p を使う
- touch で2つのファイルを作る
- 最後に ls で確認