【保存版】cpコマンドの基本や応用を実例付きで徹底解説

※本サイトにはプロモーション・広告が含まれています。

(最終更新月:2023年3月)

✔このような方へ向けて書かれた記事となります

「cpコマンドでファイルをコピーしたい」

「cpコマンドはどのような場面で使われるのだろうか?」

「cpコマンドのオプションについて知りたい」

✔当記事を通じてお伝えすること

  • cpコマンドとは?
  • cpコマンドが使われる理由
  • cpコマンドのオプション一覧

cpコマンドのキーワードで書かれている記事について、当記事では、基本的な使い方についてはもちろん、初心者にもわかりやすくさまざまなオプションについて詳しく解説しています。

ぜひ最後までご覧ください。

筆者プロフィール

筆者プロフィールアイコン

【現職】プロダクトマネージャー

【副業】ブログ(月間20万PV)/YouTube/Web・アプリ制作

「プログラミング × ライティング × 営業」の経験を活かし、30後半からのIT系職へシフト。現在はプロダクトマネージャーとして、さまざまな関係者の間に入り奮闘してます。当サイトでは、実際に手を動かせるWebアプリの開発を通じて、プログラミングはもちろん、IT職に必要な情報を提供していきます。

【当ブログで紹介しているサイト】

当サイトチュートリアルで作成したデモ版日報アプリ

Django × Reactで開発したツール系Webアプリ

✔人に見せても恥ずかしくないコードを書こう

「リーダブルコード」は、わかりやすく良いコードの定義を教えてくれる本です。

  • 見るからにきれいなコードの書き方
  • コードの分割方法
  • 変数や関数の命名規則

エンジニアのスタンダートとすべき基準を一から解説しています。

何回も読むのに値する本なので、ぜひ手にとって読んでみてください。

cpコマンドで知っておくべきこと5選

cpコマンドで知っておくべきことについて解説していきます。

cpコマンドは、MacやLinuxOSで頻繁に使われるコマンドなのです。

  • cpコマンドとは?
  • cpコマンドの基本構成とは?
  • cpコマンドを使うべき場面
  • cpコマンドでディレクトリごとコピーする方法
  • cpコマンドで複数ファイルをコピーする方法

cpコマンドとは?

cpコマンドは、ファイルやディレクトリをコピーするためのコマンドです。

ターミナル上で、ファイルはもちろんディレクトリを簡単にコピーできるため、覚えておくべきコマンドのひとつ

例えば以下のようなコマンドを入力することで、itc.txtというファイルをitc_copy.txtという名前でコピーできます。

cp itc.txt itc_copy.txt

cpコマンドを使えば、簡単にファイルやディレクトリをコピーできるのです。

cpコマンドの書き方とは?

cpコマンドの書き方は以下のとおり。

cp [コピー元ファイル] [コピー先ファイル]

以下のようなコマンドを実行することで、コピー元であるitc.txtというファイルから、itc_copy.txtという新たなファイルを作成できます。

cp itc.txt itc_copy.txt

cpコマンドを使うべき場面

cpコマンドは、ターミナル上で簡単にファイル・ディレクトリをコピーできるので以下のような場面で便利です。

  • ファイルのバックアップを作成したいとき
  • ファイルを特定のディレクトリに移動したいとき
  • リモート環境でデスクトップなどから操作ができないとき

クリックによるコピーも便利ですが、ときにはターミナルからおこなうほうが簡単なときもあります。

うまく使い分けると良いでしょう。

cpコマンドでディレクトリごとコピーする方法

cpコマンドを使ってディレクトリごとコピーするには、-rオプションが使えます。

ディレクトリ内に複数のファイルやサブディレクトリが含まれている場合、-rオプションを使わないと、コピー先にディレクトリが作成されず、エラーが発生してしまうのです。

例えば、/home/yulikepython/Documents/itcdocディレクトリを/home/yulikepython/Others/にコピーする場合、以下のようにコマンドを入力します。

cp -r /home/yulikepython/Documents/itcdoc /home/yulikepython/Others

cpコマンドを使ってディレクトリごとコピーするには、必ず-rオプションを使うことを覚えておきましょう。

cpコマンドで複数ファイルをコピーする方法

cpコマンドでは、複数のファイルを一括でコピーすることも可能。

複数のファイルを一度に処理すれば、効率的にファイルを移動できます。

例を挙げると以下のとおり。

cp itc1.txt itc2.txt itcdir

各ファイルやディレクトリの間は半角スペースで空けてください

cpコマンドを使えば、複数のファイルを同時にコピーすることができ、作業効率を向上させられます。

cpコマンドのオプション一覧を徹底解説

cpコマンドのオプション一覧を徹底的に解説していきます。

オプションを理解すれば、ファイルのコピー作業をより効率的かつ正確におこなえるようになるでしょう。

属性を保持したままコピー:-a

-aオプションは、ファイルの属性を保持したままコピーするためのオプション。

-通常、cpコマンドでファイルをコピーすると、元のファイル属性は失われますが、-aオプションを使用することで、元のファイル属性が保持できるのです。

例えばパーミンション777のファイルを-aオプションでコピーすれば、属性はそのまま残ります。

cp -a itc.txt itc_copy.txt

強制コピー:-f

-fオプションは、上書き確認をせずにファイルを強制的にコピーするオプション。

コピー先に同名のファイルがある場合でも、上書きします。

cp -f itc.txt backup/

上書きの確認:-i

-iオプションは、ファイルの上書きを確認するためのオプションです。

-iオプションにより、誤ってファイルを上書きしてしまうことを防げます。

$ cp -i itc.txt itc_copy.txt
cp: 'itc_copy.txt' を上書きしますか?

上書きするリスクがある場合に必ずつかうべきオプションです。

上書き防止:-n

-nオプションは、ファイルの上書きを防ぐために使用されます。

-nオプションをつかうと、コピー先に同名のファイルが存在する場合、コピーは実行されません。

$ cp -n itc.txt itc2.txt

$ cat itc.txt
これは1行目
これは2行目
これは3行目
これは4行目
これは5行目
これは6行目
これは7行目
これは8行目
これは9行目
これは10行目
aaa

$ cat itc2.txt
これはファイル2つ目の1行目
これはファイル2つ目の2行目
これはファイル2つ目の3行目
これはファイル2つ目の4行目
これはファイル2つ目の5行目



これはファイル2つ目の6行目
これはファイル2つ目の7行目
これはファイル2つ目の8行目
これはファイル2つ目の9行目
これはファイル2つ目の10行目

コピーを実行しても上書きされていないのがわかります。

指定した属性を保護する:-p

-pオプションは、元ファイルの属性情報(所有者、グループ、パーミッションなど)を指定しつつ、コピー先にファイルをコピーすることができます。

例えば、元ファイルの所有者が「yulikepython」、グループが「group1」、パーミッションが「rw-r–r–」だった場合、–pオプションを使用してコピーすれば、コピー先のファイルも同じ所有者、グループ、パーミッションで作成されるのです。

ディレクトリごとコピー:-r

-rオプションは、ディレクトリを再帰的にコピーするためのオプション。

再帰的と難しく考えずに、ディレクトリ丸ごとコピーできると覚えておけばOKです。

cp -r /home/yulikepython/Documents/itcdoc /home/yulikepython/Documents/itcdoc

更新日時を見る:-u

-uオプションは、コピー先のファイルが既に存在している場合に、更新日時が新しい場合のみ上書きします。

例えばWebサイトの更新作業などのように新しいファイルのみアップロードする必要がある場合に使えます。

更新日時が古いファイルを上書きしないために使えるオプションです。

コピー実行を表示:-v

-vオプションは、コピー実行を表示するもの。

$ cp -v itc.txt itc6.txt
'itc.txt' -> 'itc6.txt'

コピーの進行状況を確認したいときに使いましょう。

まとめ:cpコマンドを使いこなせば作業効率が上がる

当記事の内容をまとめます。

  • cpコマンドはファイルやディレクトリごとコピーできるコマンド
  • cpコマンドはターミナルで実行できるのが良いところ
  • cpコマンドのオプションを使えば、細かいところまで設定しつつコピーできる

cpコマンドをつかうと、ターミナル上で簡単にコピーできます。

リモートサーバー上でおこなうときなど、とても便利。

ぜひいろいろなオプションと組み合わせて効率よく作業を進めましょう。

タイトルとURLをコピーしました