cpコマンド完全ガイド|基本〜実務で使うオプション・実例・注意点まで

  • URLをコピーしました!

cpコマンドはLinuxでファイルやディレクトリをコピーするための基本コマンドです。
しかし、オプションによって動作が大きく変わるため、単にコピーするだけでなく「バックアップ目的」「更新のみコピー」「属性保持」などで使い分けることが重要です。
この記事では基本構文から実用例、よくある失敗とその回避までを徹底解説します。

📌 他のLinuxコマンドもまとめて確認したい方へ
ファイル操作・検索・テキスト処理など用途別に整理した総合まとめはこちら。
Linuxコマンド大全|カテゴリ別まとめ+コマンド詳細リンク集(チートシート付き)

目次

cpコマンドの基本構文

cpコマンドは以下の基本構文で動作します:

cp [OPTIONS] SOURCE DESTINATION

SOURCE:コピー元ファイル/ディレクトリ
DESTINATION:コピー先パスを指定します。

よく使う主要オプションと意味

オプション意味
-rディレクトリを再帰的にコピー
-i上書き時に確認プロンプト
-v進行状況を表示(verbose)
-pパーミッション/タイムスタンプを保持
-u更新がある場合のみコピー
-aアーカイブモード(属性すべて保持)
-f強制上書き

実践例:よく使う使い方

① 単一ファイルをコピー

cp file.txt /path/to/backup/

最も基本的なファイルコピーです。

② ディレクトリをまるごとコピー(再帰)

cp -r dir1/ dir2/

ディレクトリ全体をコピーします。

③ 上書きを防ぎたい場合(確認付き)

cp -i a.txt b.txt

同名ファイルに上書きする前に確認プロンプトが出ます。

④ 属性を保持してコピーしたい場合

cp -a source/ backup/

パーミッション、所有権、タイムスタンプを保持します。

よくある失敗と対策

  • 誤って上書きしてしまった
    → -i や -n オプションを付ける
  • ディレクトリ構造がコピーできない
    → -r / -a を使う
  • 更新分だけコピーしたい
    → -u オプション

関連コマンド

  • mv:移動/名前変更(削除を伴う)
  • rsync:大量データのコピー向け(進行表示付き)
  • scp:リモートホストをまたいだコピー

FAQ(よくある質問)

Q1. cpとrsyncの違いは?
cpは単純コピー、rsyncは進行表示や差分・帯域制御など多機能です。

Q2. ディレクトリだけをコピーしたい場合は?
-r または -a を指定します。

Q3. コピーしたくないファイルを除外する方法は?
cp単体では不可。find + cp や rsync で除外指定します。

目次