Linuxでファイルとフォルダを作る|mkdir・touch・echoの使い方【初心者向け】

pwd・ls・cd で、ターミナルの中を歩き回れるようになりました。次は、自分でフォルダやファイルを作る番です。

Windows なら、右クリックして「新規作成」を選びますよね。Linux のターミナルでは、それをコマンド1行で行います。最初は少し不思議な感じがしますが、慣れると「右クリックより速いかも」と思えてきます。私も、自動化の作業用フォルダを作るときは、今ではほぼコマンドです。

💡
この記事でわかること
  • mkdir でフォルダ(ディレクトリ)を作る方法
  • mkdir -p で、深い階層もまとめて作る方法
  • touch で空のファイルを作る方法
  • echo と >・>> で、ファイルに文字を書く方法
  • 「上書きしてしまった!」を防ぐための注意点
🔰
この記事の前提
  • ターミナルを開いて、Linux(WSL の Ubuntu・Debian など)のコマンドが打てる
  • pwd・ls・cd と、パスの書き方(~ や ..)がわかる

まだの方は、前の記事「Linuxのパス入門|絶対パス・相対パス・~(チルダ)と ..(ドットドット)をやさしく解説」から読むのがおすすめです。

💡
用語メモ
  • ターミナル:文字を打ってパソコンに指示を出すための画面(アプリ)。いわゆる「黒い画面」です。打った文字を読み取って動かすのは、この中で動いている「シェル」です
  • コマンド:パソコンへの指示の言葉。ターミナルに打って Enter で実行します
  • パス:ファイルやディレクトリの場所を表す「住所」の書き方(/home/kaito など)

用語で迷ったら、連載のまとめ記事の「よく出てくる用語ミニ辞典」でも確かめられます。


結論:作るコマンドは3つだけ

やりたいこと コマンド 例
フォルダを作る mkdir mkdir notes
深いフォルダをまとめて作る mkdir -p mkdir -p work/2026/07
空のファイルを作る touch touch todo.txt
ファイルに1行書く(上書き) echo ... > echo "こんにちは" > hello.txt
ファイルの最後に1行足す echo ... >> echo "2行目" >> hello.txt

Linux では、フォルダのことをディレクトリと呼びます。この記事でも、ここからは「ディレクトリ」と書いていきますね。


準備:練習用のディレクトリに移動する

この連載では、練習はすべて ~/linux-practice の中で行います。前の記事で作った方は、そのまま移動しましょう。まだない方も、次の2行で大丈夫です(-p の意味は、このあとすぐ説明します)。

  • 1
  • 2
  • 3
mkdir -p ~/linux-practice
cd ~/linux-practice
pwd

🖥️
この記事の出力例について

ここから先の出力例は、Debian 13での実行例です(ユーザー名 kaito・パソコン名 demo のダミー環境)。UbuntuやWSLでは、表示が少し違うことがあります。

(例)

  • 1
/home/kaito/linux-practice

/home/kaito/linux-practice のように、最後が linux-practice になっていればOKです(kaito の部分は、あなたのユーザー名になります)。


mkdir:ディレクトリを作る

mkdir(エムケーディア)は、make directory(ディレクトリを作る)の略です。

  • 1
  • 2
mkdir notes
ls

(例)

  • 1
memo  notes

notes が表示されれば成功です。memo は、前の記事(パスの記事)の練習で作ったディレクトリです。前の記事を試していない方は、notes だけが表示されます。何も表示されずに次の行に戻るのは、うまくいったという意味です。Linux のコマンドの多くは、成功したときは黙っています。

Debian 13での実行画面(mkdir notes のあと、ls で memo と notes が表示されたところ)

一度に複数作る

スペースで区切ると、まとめて作れます。

  • 1
  • 2
mkdir drafts images
ls

(例)

  • 1
drafts  images  memo  notes

同じ名前で作ろうとすると?

すでにある名前でもう一度作ろうとすると、エラーになります。

  • 1
mkdir notes

(例)

  • 1
mkdir: cannot create directory ‘notes’: File exists

「File exists(もうあります)」という意味のメッセージです。壊れたわけではないので、安心してください。

なお、mkdir のメッセージでは、名前が ‘notes’ のような向きのある引用符(‘ ’)で囲まれます。このあと出てくる cp や rm などでは 'notes' のようなまっすぐな記号(' ')なので、見た目が少し違いますが、意味は同じです。


mkdir -p:深いディレクトリをまとめて作る

たとえば、work/2026/07 のように3段のディレクトリを作りたいとします。-p なしで打つと、途中の work がまだないのでエラーになります。

  • 1
mkdir work/2026/07

(例)

  • 1
mkdir: cannot create directory ‘work/2026/07’: No such file or directory

「No such file or directory(そのようなファイルやディレクトリはありません)」は、途中の work が見つからない、という意味です。そこで -p を付けます。-p は、途中のディレクトリがなければ一緒に作り、すでにあってもエラーにしないオプションです。

  • 1
  • 2
  • 3
mkdir -p work/2026/07
ls work
ls work/2026

(例)

  • 1
  • 2
  • 3
  • 4
kaito@demo:~/linux-practice$ ls work
2026
kaito@demo:~/linux-practice$ ls work/2026
07

mkdir と mkdir -p の違い

💡
迷ったら -p を付けておけばOK

mkdir -p は、すでにあるディレクトリを指定してもエラーになりません。手順書やスクリプト(=やりたい処理を順番に書いておき、まとめて実行できるファイル)で mkdir -p がよく使われているのは、「何回実行しても同じ結果になる」からです。


touch:空のファイルを作る

touch(タッチ)は、中身が空っぽのファイルを作るコマンドです。

  • 1
  • 2
  • 3
cd ~/linux-practice/notes
touch todo.txt
ls -l

(例)

  • 1
  • 2
total 0
-rw-rw-r-- 1 kaito kaito 0 Nov  1 04:56 todo.txt

ls -l で見ると、ファイルの大きさ(サイズ)が 0 になっています。中身がまだ何もない、という意味です。

💡
行の先頭の -rw-rw-r-- は、環境によって違います

-rw-rw-r-- は、ファイルの権限(だれが読み書きできるか)を表す部分です。今回の Debian 13 では、新しく作ったファイルが -rw-rw-r--、ディレクトリが drwxrwxr-x になりました。これは「umask(ユーマスク)」という初期設定で決まるので、環境によっては -rw-r--r-- のように表示されることもあります。表示は環境によって少し違いますが、この記事の操作には影響しません。権限の読み方は、この連載の Lv2 で扱います。

すでにあるファイルに touch すると?

すでにあるファイルに touch しても、中身は消えません。変わるのは「最後に更新した日時」だけです。名前のとおり、ファイルに「ちょっと触る」イメージです。

  • 1
  • 2
touch todo.txt
ls -l

(例)

  • 1
  • 2
total 0
-rw-rw-r-- 1 kaito kaito 0 Nov  1 04:57 todo.txt

今回は約1分あけてもう一度 touch したので、時刻が 04:56 から 04:57 に変わりました。サイズは 0 のままです。

🤖 詰まったらAIに聞こう:ディレクトリやファイルが作れない

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
Linuxの初心者です。ディレクトリ(またはファイル)を作ろうとしたら、エラーが出ました。
原因と、直し方を初心者向けに教えてください。

【使っている環境】WSLのUbuntu など
【今いる場所(pwd の結果)】ここに貼る
【実行したコマンド】ここに貼る
【表示されたメッセージ】ここに貼る

echo:ファイルに文字を書く

echo(エコー)は、うしろに書いた文字を、そのまま表示するコマンドです。まずは画面に出してみましょう。

  • 1
echo "はじめてのメモ"

(例)

  • 1
はじめてのメモ

> で、ファイルに書き込む(上書き)

>(大なり)を付けると、画面に出すかわりに、ファイルに書き込みます。ファイルがなければ新しく作られます。

  • 1
  • 2
echo "はじめてのメモ" > memo.txt
cat memo.txt

(例)

  • 1
はじめてのメモ

cat(キャット)は、ファイルの中身を表示するコマンドです。くわしくは、この連載の「ファイルの中身を見る」の記事で扱います。

>> で、最後に1行足す(追記)

>>(大なり2つ)は、今の中身はそのままに、最後に足す書き方です。

  • 1
  • 2
echo "2行目を足しました" >> memo.txt
cat memo.txt

(例)

  • 1
  • 2
はじめてのメモ
2行目を足しました

> と >> の違い

⚠️
> は確認なしで上書きします

> は、すでに中身があるファイルでも、何も聞かずに中身を入れ替えます。上書きされた前の中身はゴミ箱にも残らないので、元に戻せません。足したいだけのときは >>、と覚えておきましょう。試すときは、この記事の練習用ファイルだけにしてください。

実際に、上書きされる様子を見ておきましょう。

  • 1
  • 2
echo "上書きしました" > memo.txt
cat memo.txt

(例)

  • 1
上書きしました

Debian 13での実行画面(> で書き込み、>> で追記、もう一度 > で上書きして、cat で中身を確かめたところ)

よくあるつまずき

名前にスペースを入れたら、2つできた
  • 1
  • 2
  • 3
cd ~/linux-practice
mkdir my folder
ls

(例)

  • 1
drafts  folder  images  memo  my  notes  work

Linux では、スペースは「区切り」の意味になります。my と folder の2つを作れ、と受け取られてしまうんですね。名前にスペースは使わず、my-folder や my_folder のように、ハイフンやアンダースコアでつなぐのがおすすめです。

できてしまった2つのディレクトリは、中が空なので次のコマンドで消せます(消すコマンドは、この連載の「rmの安全な使い方」の記事でくわしく扱います)。

  • 1
  • 2
rmdir my folder
ls

(例)

  • 1
drafts  images  memo  notes  work

「Permission denied」と出る

自分のホームディレクトリ(~)の外、たとえば / の直下などで作ろうとすると、「許可がありません」という意味のエラーになります。

(例)

  • 1
  • 2
kaito@demo:~/linux-practice$ mkdir /linux-test-denied
mkdir: cannot create directory ‘/linux-test-denied’: Permission denied

練習は ~/linux-practice の中で行えば、このエラーは出ません。pwd で、今いる場所を確かめてみてください。

メッセージが日本語で出る環境では

日本語の設定(ロケール)になっている環境では、エラーの後ろ半分だけが日本語で表示されます。今回の Debian 13 で日本語の設定にして、同じ3つのエラーを出すと次のようになりました。すでに同じフォルダーがある環境で再現するため、別の練習フォルダー(~/linux-practice/ja-test)で実行しています。

(例)

  • 1
  • 2
  • 3
mkdir: cannot create directory ‘notes’: ファイルが存在します
mkdir: cannot create directory ‘work/2026/07’: そのようなファイルやディレクトリはありません
mkdir: cannot create directory ‘/linux-test-denied’: 許可がありません

Debian 13での実行画面(日本語の設定で、~/linux-practice/ja-test の中で mkdir notes・mkdir work/2026/07・mkdir /linux-test-denied を実行)

前半の cannot create directory は英語のままで、英語と日本語が混ざった表示になります。英語で表示されても日本語で表示されても、意味は同じです。

🤖 詰まったらAIに聞こう:echo で書いたはずの中身がおかしい

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
Linuxの初心者です。echo でファイルに文字を書いたのですが、思った中身になっていません。
何が起きたのか、どう書けばよかったのかを教えてください。

【使っている環境】WSLのUbuntu など
【今いる場所(pwd の結果)】ここに貼る
【実行したコマンド(順番どおり)】ここに貼る
【cat で表示した中身】ここに貼る
【本当はこうしたかった】例:前の行を残したまま、1行足したかった

🔒
AIに貼る前に:秘密情報やパスワードは貼らない

ファイルの中身を貼るときは、パスワード、APIキー、トークン、メールアドレスなどが入っていないか確認しましょう。APIキーやトークンは、Web のサービスを使うときに本人の代わりになる、合言葉のような文字列です。入っている場合は「***」に置き換えてから貼ってください。


よくある質問

Q. touch と echo "" > ファイル は、どちらで空のファイルを作ればいいですか?

空のファイルを作るだけなら touch がおすすめです。すでに同じ名前のファイルがあっても中身が消えないからです。> は、中身があるファイルでも確認なしで上書きします。

Q. ディレクトリ名に日本語を使ってもいいですか?

使えますが、おすすめしません。打つのに手間がかかり、環境によっては表示が崩れることもあります。練習では、半角英数字と - や _ でつなぐ名前にしておきましょう。


まとめ

  • ディレクトリを作るのは mkdir。深い階層をまとめて作るなら mkdir -p
  • 空のファイルを作るのは touch。すでにあるファイルに使っても中身は消えない
  • echo "文字" > ファイル で上書き、>> で最後に追記
  • > は確認なしで上書きするので、足したいときは >>
  • 名前にスペースは使わず、- や _ でつなぐ

これで、練習用のディレクトリにファイルを作れるようになりました。次は、作ったファイルをコピーしたり、移動したり、名前を変えたりしてみましょう。


次に読む記事


関連する記事