cp (Copy)とは?
カテゴリ: コマンドラインツール
cp(コピー)は、ファイルやディレクトリを複製するためのコマンドです。Windowsでいう「コピー&ペースト(Ctrl+C, Ctrl+V)」に相当しますが、コマンドラインならではの柔軟なオプションを持っています。
よく使う重要なオプション
- -r (Recursive): ディレクトリを中身ごと再帰的にコピーします。ディレクトリをコピーする際は必須です。
`cp -r src_dir dest_dir` - -p (Preserve): 元のファイルの属性(更新日時、所有者、パーミッションなど)を保持したままコピーします。バックアップを取る際に重要です。
- -a (Archive): `-p` と `-r` を組み合わせ、さらにシンボリックリンクなどもそのままコピーする最強のバックアップオプションです。
- -i (Interactive): コピー先に同名ファイルがある場合、「上書きしますか?」と確認してくれます。操作ミスを防ぐため、エイリアスに設定されていることが多いです。
大規模データとrsync
数GB、数TBといった大量のデータをコピーする場合や、ネットワーク越しにコピーする場合は、`cp` コマンドではなく **rsync** コマンドを使うのが一般的です。`rsync` は、途中で通信が切れても再開(レジューム)できたり、変更があった差分だけを転送したりできるため、はるかに効率的です。
クラウド時代の「コピー」
現代のシステム管理では、AWS S3やGoogle Cloud Storageなどのオブジェクトストレージへのコピーも頻繁に行います。この場合、`aws s3 cp` や `gsutil cp` といった、Linuxの `cp` コマンドに似せた構文を持つクラウドCLIツールを使用します。使い勝手を統一することで、エンジニアの学習コストを下げる工夫がされています。
失敗しないための習慣
システム設定ファイル(例: `/etc/nginx/nginx.conf`)を編集する前には、必ず手動でバックアップコピーを作成する習慣をつけましょう。
`sudo cp nginx.conf nginx.conf.bak_20250123`
このように日付を含めておくと、後でいつの状態か判別しやすくなります。