cpコマンドの使い方:ファイル・ディレクトリをコピーする

cpは、ファイルやディレクトリをコピーするコマンドです。設定ファイルを書き換える前のバックアップ作成など、運用でも頻繁に使います。

cpのよく使う形

実務や学習で登場しやすい使い方を、そのまま入力できる形でまとめました。

コマンド例内容
cp a.txt b.txta.txtをb.txtという名前でコピー
cp a.txt /tmp/a.txtを/tmpディレクトリの中へコピー
cp -r dir1 dir2ディレクトリを中身ごとコピー(-rが必要)
cp -p a.txt b.txt所有者・権限・更新日時を保ったままコピー
cp -i a.txt b.txtコピー先に同名ファイルがあるとき、上書き前に確認する
cp -a dir1 dir2属性を保持し再帰的にコピー(バックアップ向き)

cpの主なオプション

オプション意味
-rディレクトリごとコピー
-i上書き確認
-v詳細表示
-p属性を保持
-u更新分のみコピー
-n上書きしない
-f強制上書き
-a属性を保持し再帰的にコピー

cpの実行例と結果の読み方

user@linux-study:~$ cp -r projects projects_backup
user@linux-study:~$ ls
projects  projects_backup

cp -rでprojectsディレクトリを中身ごとprojects_backupという名前でコピーしています。-rを付けないとディレクトリはコピーできずエラーになります。

練習用ターミナルでは、cpをブラウザ上で安全に試せます。

cpを使うときの注意点

コピー先に同名のファイルがあると、確認なしで上書きされます。大事なファイルのときは-iを付けるか、-nで上書きしない指定にします。

設定ファイルを編集する前は、cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bakのように別名でコピーしておくと、戻したいときに役立ちます。

cpに関するよくある質問

ディレクトリをコピーするとエラーになるのは?

ディレクトリのコピーには-r(再帰)が必要です。付け忘れると「-r not specified; omitting directory」と表示されます。

コピーしても更新日時が変わるのは?

通常のコピーは新しいファイルとして作られるため、更新日時はコピーした時刻になります。-pや-aを使うと元の日時を保てます。

関連ページ

あわせて覚えたいコマンド:mv・rm・ls・tar

cpが登場する章:初級 第4章

← Linuxコマンド一覧へ戻る