cp – ファイルやディレクトリをコピーするコマンド

移動・コピー

cp コマンドは、ファイルやディレクトリをコピー するコマンドです。
バックアップの作成、設定ファイルの複製、ディレクトリごとのコピーなどに広く使われます。

bashについて、基本的な考え方や使い方については bash から参照ください。

構文(Syntax)

cp [オプション] コピー元 コピー先
cp [オプション] コピー元...  コピー先ディレクトリ

主なオプション一覧

オプション説明使用例
(なし)通常コピー(既存ファイルは上書き)cp file1.txt file2.txt
-i上書き前に確認cp -i file1.txt file2.txt
-f強制的に上書きcp -f file1.txt file2.txt
-n既存ファイルを上書きしないcp -n file1.txt file2.txt
-rディレクトリを再帰的にコピーcp -r dir1 dir2
-aアーカイブモード(属性を保持しつつ再帰コピー、-dpR 相当)cp -a dir1 dir2
-pパーミッション・所有者・タイムスタンプを保持cp -p file1.txt backup.txt
-uコピー元が新しい場合のみ上書きcp -u file1.txt file2.txt
-vコピーするファイルを表示cp -v file1.txt file2.txt
-lハードリンクとしてコピーcp -l file1.txt link.txt
-sシンボリックリンクとしてコピーcp -s file1.txt symlink.txt
--parentsディレクトリ階層ごとコピーcp --parents src/dir/file.txt /tmp

実行例

ファイルをコピー

cp file.txt backup.txt

上書き前に確認

cp -i file.txt backup.txt

出力例:

cp: overwrite 'backup.txt'? y

ディレクトリを再帰的にコピー

cp -r dir1 dir2

属性を保持してコピー(バックアップ向け)

cp -a /etc /backup

更新されたファイルのみコピー

cp -u report.txt /shared/

コピー内容を表示しながら実行

cp -v file.txt backup.txt

出力例:

'file.txt' -> 'backup.txt'

ディレクトリ階層を保持してコピー

cp --parents src/config/app.conf /tmp/

コピー先:

/tmp/src/config/app.conf

エラー例(ディレクトリコピー時に -r を忘れる)

cp dir1 dir2

出力例:

cp: -r not specified; omitting directory 'dir1'

関連コマンド

  • mv : ファイルやディレクトリを移動(またはリネーム)
  • rsync : 高機能な同期・コピーコマンド(差分コピー対応)
  • install : ファイルコピー+パーミッション設定

備考

  • -a オプションは「完全なバックアップコピー」を作りたいときによく使われます。
  • シンボリックリンクやハードリンクを保持する場合は -a-d オプションが必要です。
  • 巨大なディレクトリをコピーする場合は rsync の方が効率的です。

参考

Bash玄

はじめまして!Bash玄です。

エンジニアとしてシステム運用に携わる中で、手作業の多さに限界を感じ、Bashスクリプトを活用して業務を効率化したのがきっかけで、この道に入りました。「手作業は負け」「スクリプトはシンプルに」をモットーに、誰でも実践できるBashスクリプトの書き方を発信しています。

このサイトでは、Bashの基礎から実践的なスクリプト作成まで、初心者でもわかりやすく解説しています。少しでも「Bashって便利だな」と思ってもらえたら嬉しいです!

# 好きなこと
- シンプルなコードを書くこと
- コマンドラインを快適にカスタマイズすること
- 自動化で時間を生み出すこと

# このサイトを読んでほしい人
- Bashに興味があるけど、何から始めればいいかわからない人
- 定型業務を自動化したい人
- 効率よくターミナルを使いこなしたい人

Bashの世界に一歩踏み出して、一緒に「Bash道」を極めていきましょう!

Bash玄をフォローする

コメント