はじめに
こんにちは!今回はcpコマンドについて解説します。
cpはファイルやディレクトリをコピーするコマンドです。バックアップを作ったり、プロジェクトファイルを複製したりと、毎日使う超基本的なコマンドですね。
「コピペ」のコマンド版って感じです。めっちゃ使います。
cpコマンドとは
cpは、ファイルやディレクトリをコピーする外部コマンドです。“copy"の略ですね。
元のファイルはそのまま残して、同じ内容の複製を作ります。ファイル名を変えたり、別のディレクトリにコピーしたり、属性を保持したまま複製したりできます。
基本構文
|
|
コピー元には複数ファイルを指定できます。その場合、コピー先はディレクトリである必要があります。
主なオプション
| オプション | 説明 |
|---|---|
-i |
上書き前に確認(interactive) |
-r, -R |
ディレクトリを再帰的にコピー |
-p |
属性(タイムスタンプ・権限)を保持 |
-a |
アーカイブモード(-pdrと同等) |
-u |
新しいファイルのみコピー(update) |
-v |
詳細表示(verbose) |
-n |
既存ファイルを上書きしない |
-l |
ハードリンクを作成 |
-s |
シンボリックリンクを作成 |
使用例
例1: 基本的なファイルコピー
|
|
実行結果:
|
|
file1.txtをfile2.txtという名前でコピーします。最もシンプルな使い方です。
例2: 別の名前でコピー
|
|
実行結果:
|
|
違う名前でコピーを作成します。
例3: 別ディレクトリにコピー
|
|
実行結果:
|
|
file.txtを/home/user/backup/ディレクトリにコピーします。
例4: 複数ファイルを一度にコピー
|
|
実行結果:
|
|
3つのファイルを/backup/ディレクトリにまとめてコピーします。
例5: ディレクトリを再帰的にコピー
|
|
実行結果:
|
|
folder1を中身ごとすべてfolder2にコピーします。
例6: 確認付きでコピー(-i)
|
|
実行結果:
|
|
destination.txtが既に存在する場合、確認してくれます。上書きする場合はy、キャンセルする場合はnを押します。
例7: 属性を保持してコピー(-p)
|
|
実行結果:
|
|
タイムスタンプ、権限、所有者情報を保持したままコピーします。
例8: アーカイブモード(-a)
|
|
実行結果:
|
|
ディレクトリ全体をすべての属性を保持したままコピーします。バックアップに最適。-aは-dprと同等です。
例9: 詳細表示(-v)
|
|
実行結果:
|
|
どのファイルをコピーしているか表示してくれます。大量のファイルをコピーする時に便利。
例10: ワイルドカードを使ったコピー
|
|
実行結果:
|
|
すべての.txtファイルをバックアップディレクトリにコピーします。
例11: 更新されたファイルのみコピー(-u)
|
|
実行結果:
|
|
コピー先より新しいファイルだけをコピーします。同期に便利ですね。
例12: 番号付きバックアップを作成
|
|
実行結果:
|
|
ファイルが存在する場合、番号付きのバックアップを作成します。
Tips・注意点
-iオプションで安全にコピー
誤って大事なファイルを上書きしないよう、-iオプションを使うと安全です。
|
|
上書きする前に確認してくれます。初心者にはめっちゃおすすめです!
ディレクトリコピーには-rが必須
|
|
ディレクトリをコピーする時は必ず-r(再帰)オプションが必要です。つけないとエラーになりますよ。
末尾のスラッシュに注意
|
|
スラッシュの有無で挙動が変わることがあります。
エイリアスの設定
|
|
これで常に確認付きでコピーできます。安全性アップ!
同名ファイルへのコピーはエラー
|
|
同じ名前にはコピーできません。必ず違う名前を使いましょう。
大量ファイルのコピー
|
|
大量のファイルをコピーする場合は-vで進捗を見るか、rsyncの使用を検討しましょう。
実践的な使い方
設定ファイルのバックアップ
|
|
設定ファイルを編集する前に、タイムスタンプ付きでバックアップを作ります。-pで元の属性を保持します。
プロジェクトの複製
|
|
Webプロジェクト全体をバックアップ。-aでアーカイブモード(全属性保持+再帰コピー)。
タイムスタンプ付きバックアップ
|
|
日付付きでプロジェクトをバックアップ。myproject_20251026のような名前になります。
複数サーバーへのデプロイ準備
|
|
ループを使うともっと簡単:
|
|
スクリプト内での安全なコピー
|
|
テンプレートファイルの複製
|
|
シンボリックリンクを保持
|
|
まとめ
cpコマンドのポイント:
- ファイル・ディレクトリをコピーする基本コマンド
- -i: 上書き前に確認(超重要!)
- -r: ディレクトリコピーに必須
- -p: タイムスタンプと権限を保持
- -a: アーカイブモード(バックアップに最適)
- -v: 詳細表示
- -u: 新しいファイルのみコピー
- よく使う組み合わせ:
cp -av,cp -i,cp -rp
ファイルコピーは基本中の基本。-iオプションを習慣にすると、大事なファイルを守れますよ!