カテゴリ: Linuxコマンド集 更新日: 2026/06/29

cp -rオプションの使い方|-Rと同じくディレクトリを再帰的にコピーする方法を初心者向けに解説!

cp -rオプション|-Rと同じくディレクトリを再帰的にコピーする
cp -rオプション|-Rと同じくディレクトリを再帰的にコピーする

先生と生徒の会話形式で理解しよう

生徒

「Linuxでフォルダごとコピーしたいんですが、普通のcpコマンドじゃうまくいかないんです…」

先生

「フォルダをまるごとコピーしたいなら、-rオプションを使う必要がありますよ。」

生徒

「-rってなんですか?それって安全なんですか?」

先生

「大丈夫です。-rは “再帰的に” という意味で、フォルダの中身を全部たどってコピーしてくれる便利なオプションです。」

生徒

「それなら安心ですね!詳しく教えてください!」

1. cpコマンドとは?

1. cpコマンドとは?
1. cpコマンドとは?

cpコマンドは、Linuxでファイルやディレクトリをコピーするための基本的なコマンドです。コピーとは、元のデータをそのまま別の場所に複製することを意味します。

たとえば、「写真.jpg」というファイルを「バックアップ」というフォルダにコピーするには以下のようにします。


cp 写真.jpg バックアップ/

ただし、このままだとフォルダ(ディレクトリ)はコピーできません。なぜなら、フォルダにはたくさんのファイルやフォルダが入っていて、単純なコピーでは中身までコピーされないからです。

2. -rオプションとは?

2. -rオプションとは?
2. -rオプションとは?

-rオプションは、「再帰的(recursive)」にコピーするという意味を持ちます。つまり、指定したフォルダの中にあるすべてのファイルやサブフォルダも含めて、まるごとコピーしてくれます。

これは、-R(大文字のR)でも同じ動作をします。小文字と大文字、どちらでも問題ありません。

3. cp -rの使い方|フォルダごとコピーする

3. cp -rの使い方|フォルダごとコピーする
3. cp -rの使い方|フォルダごとコピーする

たとえば「images」というフォルダを「backup」フォルダの中にコピーしたい場合、次のように入力します。


cp -r images backup/

このコマンドは、imagesというフォルダとその中身すべてを、backupフォルダの中にコピーするという意味になります。

コマンドを実行すると、次のような結果になります。


ls backup
images

さらにその中を見てみましょう。


ls backup/images
cat.jpg  dog.jpg  logo.png

中身もそのままコピーされていることがわかります!

4. よくある間違い|-rをつけ忘れた場合

4. よくある間違い|-rをつけ忘れた場合
4. よくある間違い|-rをつけ忘れた場合

もし-rをつけずに、フォルダをコピーしようとするとエラーになります。


cp images backup/
cp: -r not specified; omitting directory 'images'

このエラーメッセージは、「-rを指定していないので、imagesフォルダはスキップします」という意味です。

初心者がよくつまずくポイントなので、しっかり覚えておきましょう!

5. cp -rと他のコマンドの違い

5. cp -rと他のコマンドの違い
5. cp -rと他のコマンドの違い

cp -rと似たような機能を持つコマンドもあります。違いを見てみましょう。

  • mv:移動(コピーして元を削除)します。コピーではなく移動したい場合に使用。
  • rsync -a:フォルダを効率的に同期・コピーします。大きなデータやリモートのコピーに向いています。
  • tar -cf:フォルダを圧縮ファイルとしてまとめて保存します。コピーというより「保存」目的。

ただし、cp -rは一番シンプルで、初心者が日常的に使いやすいコマンドです。

6. -rオプションとよく使う組み合わせ例

6. -rオプションとよく使う組み合わせ例
6. -rオプションとよく使う組み合わせ例

さらに便利に使うために、-rと他のオプションを組み合わせることもあります。

  • -v(verbose): コピー中のファイル名を表示する
  • -u(update): 更新されたファイルのみコピーする

たとえば、フォルダ全体をコピーしつつ、進行状況を見たいときは以下のようにします。


cp -rv images backup/
'images/cat.jpg' -> 'backup/images/cat.jpg'
'images/dog.jpg' -> 'backup/images/dog.jpg'
'images/logo.png' -> 'backup/images/logo.png'

7. 補足:rは「recursive(再帰)」の略

7. 補足:rは「recursive(再帰)」の略
7. 補足:rは「recursive(再帰)」の略

recursive(再帰)という言葉は難しく聞こえるかもしれませんが、簡単に言えば「中の中の中までたどっていく」という意味です。

フォルダの中にさらにフォルダがある場合、それも含めてコピーしてくれるのが-rの働きです。

まとめ

まとめ
まとめ

cp -rオプションはディレクトリコピーの基本中の基本

本記事では、Linuxコマンドの中でも非常に重要なcpコマンドと、その中でもディレクトリコピーに必須となるcp -rオプションについて解説しました。 Linux初心者の方にとって、ファイルコピーとディレクトリコピーの違いは最初につまずきやすいポイントですが、cp -rオプションを理解することで、その問題は簡単に解決できます。 cp -rは再帰的コピーという仕組みを使い、フォルダの中にあるファイルやサブディレクトリをすべて含めてコピーすることができるため、実務でも頻繁に使われる基本操作です。 Linux環境では、バックアップ作業やデータ移行、設定ファイルの複製など、ディレクトリ単位でのコピーが必要になる場面が非常に多く、そのたびにcp -rが活躍します。 そのため、cp -rオプションはLinuxコマンドの中でも最初に確実に身につけておきたい重要な知識のひとつです。

再帰的コピーの仕組みを理解することが重要

cp -rオプションの本質は再帰的処理にあります。 再帰的とは、フォルダの中にあるフォルダ、その中のフォルダ、さらにその中のフォルダといったように、階層構造をすべてたどりながら処理を行うことを意味します。 Linuxのディレクトリ構造はツリー状になっているため、この再帰的な処理がなければ、完全なコピーは実現できません。 cp -rを使うことで、ユーザーは複雑な階層構造を意識することなく、一つのコマンドでディレクトリ全体をコピーすることができます。 この仕組みを理解しておくことで、他のLinuxコマンドにおける再帰処理の理解にもつながります。


cp -r project backup/
ls backup/
project

このように、ディレクトリごとコピーされることが確認できます。

-rを忘れるとエラーになる理由を理解する

cpコマンドはデフォルトではファイルのみを対象としており、ディレクトリをコピーする機能は持っていません。 そのため、-rオプションを指定しない場合、ディレクトリはコピー対象外として扱われ、エラーになります。 この挙動はLinuxの設計思想に基づいており、意図しない大量コピーや誤操作を防ぐための仕組みです。 初心者の方はエラーが出ると焦ってしまいがちですが、その意味を理解することで、正しい対処ができるようになります。


cp images backup/
cp: -r not specified; omitting directory 'images'

このエラーは非常によく見るため、覚えておくと安心です。

実務でよく使うオプションとの組み合わせ

cp -rは単体でも便利ですが、他のオプションと組み合わせることでさらに強力になります。 特に-vオプションを使えばコピーの進行状況を確認でき、-uオプションを使えば更新されたファイルのみコピーすることができます。 これにより、大規模なディレクトリコピーでも効率的かつ安全に作業を進めることができます。 Linuxサーバー運用や開発環境の構築では、このようなオプションの組み合わせが非常に重要になります。


cp -rv project backup/
'project/index.html' -> 'backup/project/index.html'
'project/style.css' -> 'backup/project/style.css'

実際の現場では、このように進行状況を確認しながら作業することが多いです。

他のコマンドとの違いを理解することで応用力が身につく

cp -rと似た機能を持つコマンドには、mvやrsync、tarなどがありますが、それぞれ目的が異なります。 cp -rは単純なコピーに特化しており、初心者でも扱いやすいのが特徴です。 一方で、大量データの同期や差分コピーが必要な場合はrsyncを使うなど、用途に応じた使い分けが重要になります。 まずはcp -rをしっかり理解し、その後に応用的なコマンドへステップアップするのが効率的な学習方法です。

Linux初心者が意識すべき安全な操作方法

cp -rは便利な反面、大量のファイルを一度にコピーするため、操作ミスが大きな影響を与える可能性があります。 特にコピー先を間違えると、意図しない場所に大量のデータが作成されてしまうことがあります。 そのため、実行前には必ずコピー元とコピー先を確認する習慣をつけることが重要です。 また、必要に応じてlsコマンドで結果を確認しながら作業を進めることで、安全性を高めることができます。


ls backup/project
index.html  style.css  images

このように結果を確認することで、正しくコピーされているかを把握できます。

cp -rを使いこなすことでLinux操作が一段レベルアップする

cp -rオプションは単なるコピーコマンドの拡張ではなく、Linuxのファイル管理を理解する上で重要なステップです。 ディレクトリ構造やファイルの階層を意識しながら操作することで、より深い理解につながります。 初心者の方でも、実際にコマンドを何度も試しながら操作することで、自然と使いこなせるようになります。 Linuxの基本操作を確実に身につけるためにも、cp -rを日常的に使い、実践を通じて理解を深めていきましょう。

先生と生徒の振り返り会話

生徒

「cp -rを使えばフォルダごとコピーできる理由がよく分かりました。」

先生

「再帰的に処理するという考え方がポイントでしたね。」

生徒

「-rを忘れるとエラーになるのも納得です。」

先生

「Linuxは安全性を重視しているので、明示的に指定する必要があるのです。」

生徒

「-vや-uと組み合わせるのも便利そうですね。」

先生

「実務では組み合わせて使うことが多いですよ。」

生徒

「これからはコピー先もちゃんと確認して使います。」

先生

「その意識がとても大切です。安全に操作していきましょう。」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

Linuxのcpコマンドとは何ですか?初心者向けに教えてください

cpコマンドは、Linuxでファイルやディレクトリをコピーするための基本的なコマンドです。元のデータを別の場所に複製するときに使います。

cpコマンドでフォルダをコピーできないのはなぜですか?

cpコマンドは単体ではフォルダ(ディレクトリ)をコピーできません。フォルダをコピーするには、-rオプションを追加して再帰的にコピーする必要があります。

cp -rの-rオプションは何を意味していますか?

-rオプションは「recursive(再帰的)」の略で、フォルダの中のファイルやサブフォルダをすべて含めてまとめてコピーする機能です。
関連記事:
カテゴリの一覧へ
新着記事
New1
Linuxコマンドの基本
Linuxのパイプ(|)とは?複数コマンドをつなげて効率化する方法を完全解説
New2
テキスト・データ処理
tailコマンドとは?Linuxでファイルの末尾を表示する基本をやさしく解説!
New3
ファイル・ディレクトリ操作
find -groupオプションの使い方を解説!初心者でもできる所有グループによるファイル検索
New4
圧縮・アーカイブ
rar xオプションの使い方を完全ガイド!Linuxでディレクトリ構造を保持して展開する方法を初心者向けに解説
人気記事
No.1
Java&Spring記事人気No1
ファイル・ディレクトリ操作
findコマンドの使い方を完全ガイド!初心者でもわかるLinuxのファイル検索の基本
No.2
Java&Spring記事人気No2
テキスト・データ処理
catコマンドとは?Linuxでファイル内容を表示・連結する基本
No.3
Java&Spring記事人気No3
ファイル・ディレクトリ操作
cd ~ の使い方を完全解説!ホームディレクトリへの移動方法と初心者向けLinuxコマンド入門
No.4
Java&Spring記事人気No4
圧縮・アーカイブ
gzipコマンドの使い方を完全ガイド!初心者でもわかるLinuxでファイル圧縮の基本