cp --backupオプションの使い方|バックアップしながらファイルをコピーしよう
生徒
「Linuxでファイルをコピーするときに、元のファイルを上書きしちゃいそうで心配です……。安全にコピーする方法ってありますか?」
先生
「それなら、cpコマンドの--backupオプションを使うのがおすすめです。コピー先に同じ名前のファイルがあっても、自動的にバックアップを作ってくれますよ。」
生徒
「バックアップって、コピー前のファイルを残してくれるってことですか?」
先生
「そうです!元のファイルを消さずに、コピーを安全に行いたいときにとても便利ですよ。詳しく見てみましょう!」
1. cpコマンドとは?
cpコマンドは、Linuxで「ファイル」や「ディレクトリ」をコピーするときに使う基本コマンドです。Windowsでいう「コピー&ペースト」のようなものですね。
例えば、document.txtというファイルをコピーして、document_backup.txtという名前にする場合は以下のように書きます。
cp document.txt document_backup.txt
ただし、コピー先にすでに同じ名前のファイルがあると、そのファイルは上書きされて消えてしまいます。このときに活躍するのが--backupオプションです!
2. --backupオプションとは?
--backupオプションは、コピー先に同名のファイルがある場合に、自動的に元のファイルをバックアップしてくれる機能です。
バックアップされたファイルは、通常「~(チルダ)」がファイル名の末尾に付く形式になります。
例として、次のように実行すると……
cp --backup memo.txt folder/
もしfolder/memo.txtがすでに存在していれば、それはmemo.txt~として保存され、新しいmemo.txtがコピーされます。
コマンド実行後の状態は次のようになります。
ls folder/
memo.txt memo.txt~
3. 実行例で動作を確認しよう
まず、テスト用のファイルを2つ作成します。
echo "元の内容" > file.txt
mkdir backup_test
echo "古い内容" > backup_test/file.txt
この状態で--backupオプションを使ってコピーしてみましょう。
cp --backup file.txt backup_test/
すると、以下のようにバックアップファイルが作成されます。
ls backup_test/
file.txt file.txt~
file.txt~が元の内容を保存してくれているので、上書きされても安心ですね!
4. バックアップの種類を指定する(-bと--suffix)
--backupの略として-bも使えます。また、バックアップファイルの末尾に付ける文字をカスタマイズするには--suffixを使います。
例えば、末尾に.bakを付けたい場合は以下のようにします。
cp -b --suffix=.bak file.txt backup_test/
実行後はこんな感じになります。
ls backup_test/
file.txt file.txt.bak
5. --backup=numberedで連番のバックアップを作る
--backupオプションは、以下のように動作のモードを指定できます。
--backup=none(デフォルト):バックアップなし--backup=numbered:連番付きのバックアップ(例:file.txt.~1~)--backup=existing:すでに連番が使われていれば、それに従う--backup=simple:チルダ(~)を付ける(通常の動作)
連番でバックアップを取りたいときは、以下のように実行します。
cp --backup=numbered file.txt backup_test/
2回コピーすれば……
ls backup_test/
file.txt file.txt.~1~
さらにコピーすると、
ls backup_test/
file.txt file.txt.~1~ file.txt.~2~
このように、連番でどんどんバックアップされていくのでとても便利です!
6. --backupと他のオプションの組み合わせ例
-i(確認)や-v(詳細表示)と組み合わせて使うと、より安全で視覚的にもわかりやすくなります。
例えば、コピー前に確認しつつ、バックアップを作る場合はこうです。
cp -ibv file.txt backup_test/
-iで「上書きしてもいいですか?」と聞かれ、-vで「何をコピーしたか」が表示されます。
7. cpとrsyncの違いにも注意しよう
cpはシンプルで使いやすいですが、複雑なコピーや差分コピーをしたいときはrsyncというコマンドの方が適しています。
しかし、--backupオプションのように「簡単にバックアップを取りながらコピー」したい場合は、cpの方が初心者には扱いやすいです。
まとめ
ここまで、Linuxのcpコマンドにおける--backupオプションの使い方を、基本から応用まで順番に見てきました。 ファイルコピーは日常的によく使う操作ですが、実は「うっかり上書きしてしまった」「元の内容を失ってしまった」という失敗が起こりやすいポイントでもあります。 そのような場面で役立つのが、今回学んだバックアップを取りながら安全にコピーする方法です。
cpコマンドは、Linux初心者でも最初に覚える重要な基本コマンドの一つです。 単純にファイルやディレクトリをコピーするだけであれば、cpの基本構文だけでも十分ですが、 実務や学習を続けていくと「既存ファイルがある状態でコピーしたい」「元の状態を残しておきたい」という状況に必ず直面します。 そうしたときに--backupオプションを知っているかどうかで、安全性と作業効率は大きく変わります。
--backupオプションを指定すると、コピー先に同名ファイルが存在していても、上書きされる前のファイルを自動的に保存してくれます。 デフォルトではチルダが付いたファイル名でバックアップが作成されるため、特別な設定をしなくてもすぐに利用できるのが特徴です。 さらに、--suffixを使えば拡張子を自由に変更でき、--backup=numberedを指定すれば連番付きで履歴を残すこともできます。
実際の作業では、次のように「どんなファイルが存在しているか」を確認しながら操作することが大切です。 例えば、コピー前後でディレクトリの中身を確認することで、バックアップファイルが正しく作成されているかを目で見て把握できます。
ls backup_test/
file.txt file.txt~
このように表示されていれば、元のファイルがfile.txt~として残っており、新しいファイルが安全にコピーされていることが分かります。 Linuxコマンドは「実行して終わり」ではなく、結果を確認しながら進めることで理解が深まります。
また、-iや-vといったオプションと組み合わせることで、確認メッセージを表示したり、処理内容を分かりやすく表示したりできます。 特に初心者のうちは、-iや-vを付けて実行することで、どのファイルがどこへコピーされたのかを把握しやすくなります。 安全性を重視する場面では、cp --backup とこれらのオプションを組み合わせる習慣を付けておくと安心です。
今回の記事を通して、cpコマンドは単なるコピー機能だけでなく、工夫次第で簡易的なバックアップツールとしても使えることが分かったと思います。 rsyncのような高機能なコマンドを使う前段階として、まずはcpのオプションをしっかり理解しておくことが、 Linux操作に慣れるための近道になります。
生徒
「cpコマンドって、ただコピーするだけだと思っていましたけど、--backupを使うと安心感が全然違いますね。 うっかり上書きしても、元のファイルが残っているのは心強いです。」
先生
「そうですね。Linuxでは小さな操作ミスが大きなトラブルにつながることもあります。 だからこそ、最初からバックアップを意識したコマンド操作を身に付けることが大切です。」
生徒
「--suffixや--backup=numberedを使えば、履歴も残せるので、設定ファイルを触るときにも使えそうですね。」
先生
「その通りです。設定変更や検証作業では、元に戻せる状態を作っておくことが基本です。 cp --backupを自然に使えるようになれば、Linux操作が一段レベルアップしたと言えますよ。」
生徒
「これからは、何かコピーするときは--backupを付けるクセを付けていきます!」