mkdir・touch・echoの使い方 - Linuxファイル作成コマンド入門

mkdir・touch・echoの使い方 - Linuxファイル作成コマンド入門

この記事でできるようになること

  • `mkdir` でディレクトリを作れる。`-p` で途中の階層もまとめて作れる
  • `touch` で空のファイルを作れる。複数まとめて作れる
  • `echo >` と `echo >>` の違いを説明できる。`cat` で中身を確かめられる

前提知識(先に読むと理解しやすい記事)

この記事でできるようになること

結論: mkdir・touch・echo・catの4コマンドでファイルとディレクトリファイルをまとめて整理する入れ物。Windows や macOS の「フォルダ」と同じもの。の作成と確認が一通りできる。

  • mkdir で新しいディレクトリを作成できます
  • touch で空のファイルを作成できます
  • echo で文字を出力できます。ファイルに書き込むこともできます
  • cat でファイルの内容を表示できます

対象読者:pwd・cd・ls を習得した方。ファイル作成の次のステップに進みたい方。

言葉の整理

  • ディレクトリ:Windows や Mac でいうフォルダのことです。「フォルダ」「ディレクトリ」は同じものを指す別の呼び方です。
  • ターミナル入力したコマンドを解釈してコンピュータに実行させる対話プログラム。:コマンドを打ち込む画面です。「シェル」「コンソール」「コマンドライン」もほぼ同じものを指します。
  • リダイレクト:コマンドの出力先を画面からファイルへ切りかえる仕組みです。記号は >>> を使います。

この記事の mkdir / touch / cat は、ファイルを消すコマンドではありません。ただし echo と組み合わせる > は、ファイルの中身を置きかえます。詳しくは「ファイルに書き込む」の章で説明します。記事の最後では、練習用ディレクトリを消す rm も使います。

本サイトの仮想ターミナルは学習用です。あなたのパソコンは壊れません。安心して試してください。

導入:リナの次の一歩

結論: pwd・cd・lsの次のステップとしてファイルを作り書き込み確認する4つの操作を習得する。

リナ: ライニー先輩!この前教わった pwdcdls はバッチリ使えるようになりました!
ライニー先輩: お、すごいね!じゃあ次のステップに進もう。今度は「ファイルを作る」方法を覚えよう。
リナ: ファイルを作る、ですか。Windows だと右クリックで「新規作成」ですけど、コマンドでもできるんですか?
ライニー先輩: もちろんできるよ。今日は 4 つのコマンドを覚えよう。mkdir(ディレクトリ作成)、touch(ファイル作成)、echo(文字出力)、cat(ファイル表示)だね。
ライニー先輩: この 4 つがそろえば、自分でファイルを作れる。中身を書き込むところまでできるようになるよ。

mkdir - ディレクトリを作ろう

結論: mkdirでディレクトリを作り-pオプションで複数階層を一度に作成しlsで結果を確認する。

ライニー先輩: まずは mkdir コマンドだよ。「Make Directory」の略だね。新しいディレクトリを作るコマンドだよ。
リナ: ディレクトリって、ファイルを入れる箱みたいなものですよね?
ライニー先輩: そのとおり。まずは練習用のディレクトリを作ってみよう。

基本的な使い方

$ mkdir practice
リナ: あれ?何も表示されないですけど、大丈夫ですか?
ライニー先輩: 大丈夫だよ。Linux のコマンドは「成功したら何も言わない」のが基本なんだ。
ライニー先輩: 確認したいときは ls を使おう。
$ ls
documents  downloads  pictures  practice

ここがポイントmkdir の結果は ls で確認する習慣をつけましょう。Linux には「沈黙は成功の証」という考え方があります。エラーがなければ、何も表示されないことが多いのです。

複数階層のディレクトリを一度に作る(-p オプション)

リナ: practice の中に、さらに lesson1 を作りたいんですけど。
ライニー先輩: いい質問だね。-p オプションを使おう。途中のディレクトリも一緒に作ってくれるよ。
$ mkdir -p practice/lesson1/exercises
リナ: practicelesson1exercises が一気にできるんですね。
ライニー先輩: そう。-p なしだと、practice がない場合にエラーになる。-p は「途中の階層も作ってよい」という指示だよ。

touch - 空のファイルを作ろう

結論: touchで空ファイルを作成しスペース区切りで複数ファイルを一度に作ることもできる。

ライニー先輩: 次は touch コマンドだよ。これは空のファイルを作るコマンドだね。
リナ: 「タッチ」って触るという意味ですよね。ファイルを触る、ですか?
ライニー先輩: 本来の用途は「タイムスタンプを更新する」ことなんだ。タイムスタンプは、ファイルの最終更新日時のことだよ。
ライニー先輩: ただし、指定したファイルが存在しないときは新しく作ってくれる。だからファイル作成にもよく使われるんだ。

基本的な使い方

$ touch memo.txt
$ ls
documents  downloads  memo.txt  pictures  practice
リナ: memo.txt ができました!でも中身は空っぽなんですよね?
ライニー先輩: そう。中身を書き込むには次の echo コマンドを使うよ。

複数ファイルを一度に作成

$ touch file1.txt file2.txt file3.txt
$ ls
file1.txt  file2.txt  file3.txt  memo.txt  ...

ここがポイントtouch は複数のファイル名をスペースで区切って指定できます。こうすると、一度に複数のファイルを作成できます。

echo - 文字を出力しよう

結論: echoで文字を出力しリダイレクト>で上書き>>で追記してファイルに内容を書き込む。

ライニー先輩: echo コマンドは文字列を出力するコマンドだよ。英語で「こだま」という意味だね。入力した文字をそのまま返してくれるよ。

画面に文字を表示

$ echo Hello
Hello
$ echo "Hello, Linux World!"
Hello, Linux World!
リナ: 入力した文字がそのまま表示されますね。でも、これだけだと使い道が少なそうです。
ライニー先輩: そう思うよね。echo の本領発揮は「ファイルへの書き込み」なんだ。

ファイルに書き込む(リダイレクト)

$ echo "これはメモです" > memo.txt
リナ: > って何ですか?
ライニー先輩: これは「リダイレクト」と呼ぶ記号だよ。ふだん画面に出る文字を、ファイルの中に書き込むように行き先を変える機能だね。
ライニー先輩: 水道の蛇口を別の場所に向けるイメージだよ。> は「上書き」、>> は「追記」だね。
$ echo "1行目のメモ" > memo.txt
$ echo "2行目を追加" >> memo.txt

cat - ファイルの中身を見よう

結論: catでファイル全体を表示し-nで行番号付き表示や複数ファイルの連結表示もできる。

ライニー先輩: 最後は cat コマンドだよ。「concatenate(コンカテネイト、連結する)」の略だね。ファイルの中身を表示するコマンドだよ。
リナ: さっき echo で書き込んだ内容を見てみたいです。

基本的な使い方

$ cat memo.txt
1行目のメモ
2行目を追加
リナ: ちゃんと 2 行とも表示されてますね。
ライニー先輩: cat はファイル全体を一気に表示するよ。短いファイルの確認に便利だね。

リナの失敗:> で 2 行が 1 行になった

リナ: メモに 3 行目を足そうとして echo "3行目のメモ" > memo.txt と打ちました。そのあと cat で見たら、1 行しかありません。
$ echo "3行目のメモ" > memo.txt
$ cat memo.txt
3行目のメモ
リナ: えっ、前の 2 行はどこへ行ったんですか。追加したつもりだったのに。
ライニー先輩: > は「上書き」だからね。ファイルの中身をいったん空にしてから、新しい行を書いたんだ。
リナ: 消えたのは打ち間違いのせいじゃなかったんですね。記号 1 つで意味が変わるとは思いませんでした。
ライニー先輩: そう。追記したいときは >> を使う。「記号が 2 つなら追加」と覚えるといいよ。
リナ: 納得しました。書き込む前に cat で中身を見る癖もつけます。
$ echo "1行目のメモ" > memo.txt
$ echo "2行目を追加" >> memo.txt
$ echo "3行目のメモ" >> memo.txt
$ cat memo.txt
1行目のメモ
2行目を追加
3行目のメモ

複数ファイルを連結して表示

$ echo "ファイル1の内容" > file1.txt
$ echo "ファイル2の内容" > file2.txt
$ cat file1.txt file2.txt
ファイル1の内容
ファイル2の内容

ここがポイントcat は複数のファイルを指定できます。指定した順につなげて表示します。これが「concatenate(連結する)」という名前の由来です。

行番号を付けて表示(-n オプション)

$ cat -n memo.txt
     1  1行目のメモ
     2  2行目を追加
     3  3行目のメモ

ミニ課題で手を動かそう

結論: mkdir・touch・echo・catを組み合わせてディレクトリ作成からファイル整理まで実践する。

ライニー先輩: じゃあ、今日覚えた 4 つのコマンドを使って課題をやってみよう。
ライニー先輩: まず練習用のディレクトリを作って、その中だけで試そう。こうすれば、もとからあるファイルにはふれないよ。
$ mkdir -p ~/file-practice && cd ~/file-practice

課題1:練習用ディレクトリを作成して移動しよう

やること:「my-project」というディレクトリを作ります。その中に移動して、今いる場所を表示しましょう。

ヒント 1(方向づけ)を見る

3 つの動作に分けます。「作る」「移動する」「今いる場所を確かめる」です。1 つずつ別のコマンドを使います。

ヒント 2(コマンド名)を見る

作るのは mkdir です。移動するのは cd です。今いる場所を出すのは pwd です。この順に使います。

答えを見る
$ mkdir my-project
$ cd my-project
$ pwd
/home/user/file-practice/my-project

/home/user の部分は、あなたのユーザー名によって変わります。自分のユーザー名が出ていれば成功です。

課題2:READMEファイルを作成して内容を書き込もう

やること:「README.txt」という空ファイルを作ります。プロジェクト名と作成日の 2 行を書き込み、内容を表示しましょう。

ヒント 1(方向づけ)を見る

4 つの動作に分けます。「空ファイルを作る」「1 行目を書く」「2 行目を足す」「中身を見る」です。

2 行目では、1 行目を消さない記号を選びます。

ヒント 2(コマンド名)を見る

作るのは touch です。書き込むのは echo です。1 行目は >、2 行目は >> を使います。表示は cat です。

答えを見る
$ touch README.txt
$ echo "プロジェクト名: My First Project" > README.txt
$ echo "作成日: 2026-02-02" >> README.txt
$ cat README.txt
プロジェクト名: My First Project
作成日: 2026-02-02

2 行目を > で書くと、1 行目が消えます。ここが >>> の分かれ目です。

課題3:サブディレクトリを作成してファイルを整理しよう

やること:「docs/notes」という 2 階層のディレクトリを一度に作ります。その中に「memo1.txt」と「memo2.txt」を作り、一覧を表示しましょう。

ヒント 1(方向づけ)を見る

docsnotes を 2 回に分けて作る必要はありません。途中の階層もまとめて作るオプションがあります。

ファイルも 2 回に分けなくて済みます。

ヒント 2(コマンド名)を見る

ディレクトリは mkdir -p で一度に作れます。ファイルは touch に名前をスペースで区切って並べます。一覧は ls です。

答えを見る
$ mkdir -p docs/notes
$ touch docs/notes/memo1.txt docs/notes/memo2.txt
$ ls docs/notes
memo1.txt  memo2.txt
リナ: できました。ディレクトリを作って、ファイルを作って、中身を書いて、確認する。この流れがわかってきました。
ライニー先輩: 完璧だね。この流れは実務でも本当によく使うよ。手を動かして覚えておこう。

よくあるミスと対処法

結論: スペルミスやリダイレクトの向き違いなど初心者がよく引っかかるミスと対処を把握する。

ミス1:ディレクトリ名のスペルミス

リナ: mkdir documets と打ってしまいました。「documents」にしたかったのに。
ライニー先輩: よくあるミスだね。作り直してもいいし、mv コマンドで名前を変えてもいい。
ライニー先輩: まずは ls で結果を確認する癖をつけよう。

ミス2:リダイレクトの向きを間違える

リナ: echo "追加" > memo.txt で追記したかったのに、上書きしてしまいました。
ライニー先輩: これは本当によくあるミスだよ。追記は >>(2 つ)、上書きは >(1 つ)だね。
ライニー先輩: 迷ったら「2 つは追加」と覚えよう。心配なときは、先に cat で中身を見ておくといいよ。

ミス3:存在しないディレクトリにファイルを作ろうとする

$ touch newdir/file.txt
touch: 'newdir/file.txt' にアクセスできません: そのようなファイルやディレクトリはありません
ライニー先輩: touch はディレクトリを自動では作らないよ。先に mkdir newdir でディレクトリを作ろう。そのあとで touch を実行するんだ。

ミス4:ファイルとディレクトリを混同する

リナ: cat でディレクトリの中身を見ようとしたらエラーが出ました。
ライニー先輩: cat はファイルの中身を見るコマンドだよ。ディレクトリの中身を見るのは ls だね。
ライニー先輩: 見分け方もあるよ。ls -la の行頭が d ならディレクトリ、- ならファイルだよ。

ミス5:日本語ファイル名を使う

リナ: mkdir メモ のように、日本語でも作れるんですか?
ライニー先輩: 作れるよ。ただし避けたほうがいいね。文字化けの原因になることがある。スクリプトでも扱いにくいんだ。
ライニー先輩: ファイル名は英数字とハイフン、アンダースコアを使おう。

振り返り

リナ: 整理します。mkdir でディレクトリ、touch でファイルを作るんですね。
ライニー先輩: そのとおり。-p を付ければ、途中の階層もまとめて作れるよ。
リナ: 書き込みは echo で、> は上書き、>> は追記でした。1 行しか残らなかったのは > を使ったからですね。
ライニー先輩: よく覚えていたね。書き込む前に cat で中身を見る。この 1 手間で失敗はほとんど防げるよ。

今日の3行まとめ

結論: mkdir・touch・echo・catの4コマンドの役割と使い分けを3行で整理して定着させる。

  1. mkdir でディレクトリを作る。-p を付けると途中の階層もまとめて作れる
  2. touch で空ファイルを作る。echo "内容" > file で中身を書き込む
  3. > は上書き、>> は追記。書く前に cat で中身を確かめる

次に学ぶこと

結論: 次はcp・mv・rmでファイルのコピー移動削除を学びファイル操作の基本を完成させる。

リナ: ファイルの作り方がわかりました。次は何を学べばいいですか?
ライニー先輩: 次はファイルの「コピー」「移動」「削除」だね。cpmvrm の 3 つだよ。
ライニー先輩: この 3 つを覚えれば、ファイル操作の基本はそろう。ファイル操作の基礎編で詳しく解説しているよ。
この記事を共有

次の一手