cp シーピー

英語表記cp

日本語表記ファイルコピー

正式名称cp

危険度注意

What does it mean?

ファイルやディレクトリをコピーします。バックアップ、テンプレート複製、設定ファイルの退避などで日常的に使います。

Command Quest

cp を今日の道具にする

ファイルやディレクトリをコピーします。バックアップ、テンプレ...

$ cp [オプション] 元 ... 先
関連用語5
次のコマンド0
FAQ2
参照3

概要

ファイルやディレクトリをコピーします。バックアップ、テンプレート複製、設定ファイルの退避などで日常的に使います。

基本構文

cp [オプション] 元 ... 先

詳細解説

cpは、ファイルやディレクトリの内容を別の場所へ複製するための基本コマンドです。単一ファイルのコピーだけでなく、ディレクトリ全体の再帰的コピー、属性保持付き複製、上書き確認付きコピーなど、実務で使う場面は非常に多くあります。

単純に見えて重要なのは、上書き、属性保持、シンボリックリンクの扱いです。設定ファイルを退避したつもりが属性を失っていた、ディレクトリを丸ごとコピーしたつもりが再帰オプションを忘れた、といった事故は珍しくありません。

GNU系では-aが実務上便利で、再帰コピーと属性保持をまとめて行えます。

このコマンドを使う場面

設定ファイルの退避、配布用テンプレートの複製、作業前バックアップ、ディレクトリ全体の複写をしたい時に使います。

まず安全に試す方法

1. printf "%sn" "demo" > a.txt
2. cp a.txt b.txt
3. ls -l a.txt b.txt
4. cmp a.txt b.txt

3分ミッション

少しでも手を動かすと定着しやすくなります。終わった項目にチェックを入れてください。

  1. 小さなテキストファイルを作り、cpで複製して内容一致を確認します。

  2. cp -aで退避を作り、statで元とコピー先の属性を比べます。

資格試験との関連

  • LinuC レベル1
    範囲: 1.02 ファイル・ディレクトリの操作と管理
    根拠: official
    LinuCレベル1では、基本的なファイル管理、リンク、ファイル配置と検索が主要範囲です。cpはその中核です。
  • LPIC-1
    範囲: 104.7 システムファイルの検索と正しい配置
    根拠: official
    LPIC-1では、ファイル配置、コマンド探索、基本的なファイル操作と確認が求められます。cpはその土台になります。
  • 共通基礎
    範囲: Linuxコマンド基礎
    根拠: editorial
    試験横断で、cpはコマンドライン操作、手順読解、トラブルシュートの基礎体力を作る項目です。

オプション

  • -r
    ディレクトリを再帰的にコピーします。
    cp -r srcdir backupdir
  • -a
    可能な範囲で属性を保ったまま再帰コピーします。GNU系で便利な実務向け指定です。
    cp -a /etc/app app.bak
  • -i
    上書き前に確認を求めます。
    cp -i a.txt b.txt
  • -p
    タイムスタンプや権限などの属性保持を試みます。
    cp -p a.txt b.txt

実行結果サンプル

  • printf "%sn" "demo" > a.txt cp a.txt b.txt cat b.txt
    demo
  • cp -a /etc/hosts hosts.bak stat hosts.bak
    属性情報の表示

戻り値コード

  • 0 要求したコピー処理が成功しました。
  • >0 入力ファイル不在、権限不足、上書き拒否などで失敗しました。

使用例

  • cp file1 file2
  • cp -i source.txt dest.txt
  • cp -r srcdir backupdir
  • cp -a app.conf app.conf.bak

よくあるエラー

  • ディレクトリをコピーしたら失敗した
    原因: 再帰指定が不足しています。
    対処: ディレクトリ全体ならcp -rまたはcp -aを使います。
  • 退避したはずなのに権限や時刻が変わった
    原因: 属性保持を指定していません。
    対処: 必要に応じてcp -aやcp -pを使います。

導入・互換性情報

POSIXで基本機能は定義されていますが、-aなど便利なオプションはGNU系拡張です。BSD系では細部が異なることがあります。

  • Debian GNU/Linux / 13 / GNU coreutils 9.7 / Bash 5.2.37

注意点 / セキュリティリスク

上書き事故の危険があります。特に同名ファイルへのコピー、再帰コピー、権限の強い場所への操作では、先にlsやstatで対象を確認すると安全です。

FAQ

  • Q. cp -rとcp -aはどう違いますか。
    A. -rは再帰コピー中心、-aは再帰に加えて属性保持も重視するGNU系の便利指定です。
  • Q. 安全に上書きを避けるにはどうすればよいですか。
    A. cp -iで確認を入れるか、先に別名退避してから作業します。

関連用語

  • sparse file
  • backup
  • restore
  • clone
  • template

参照リンク

関連記事