cp -uオプションの使い方を完全ガイド!初心者向け更新コピーの基本
生徒
「Linuxで毎回同じファイルをコピーするのが面倒なんですけど、効率のいい方法ってありますか?」
先生
「それなら cp -u オプションを使えば、更新されたファイルだけを自動でコピーしてくれるよ。」
生徒
「えっ、自動で?それって古いファイルは無視されるんですか?」
先生
「そう!コピー先より新しいファイルだけを上書きするから、無駄な作業を減らせるんだ。」
1. cpコマンドとは?
cp コマンドは、Linuxでファイルやディレクトリをコピーするための基本コマンドです。Windowsでいうところの「コピー&ペースト」に近い操作が、ターミナルで実行できます。
基本的な使い方は以下のようになります。
cp ファイル名 コピー先
このように入力すると、ファイルが指定した場所にコピーされます。
2. -uオプションとは?(updateの略)
-u オプションは update(アップデート)の略で、「更新されたファイルだけをコピーする」という意味があります。
つまり、コピー元のファイルがコピー先のファイルより新しい場合のみ、上書きされます。逆に、すでにコピー先にあって、古いファイルは無視されます。
このように使います。
cp -u new.txt backup/new.txt
この操作では、backup フォルダにある new.txt が古い場合のみ、新しい内容で上書きされます。
3. -uオプションの使い方を例で解説
以下のような状況を考えてみましょう。
- 作業用フォルダ:
project - バックアップ用フォルダ:
backup
毎日作業している project フォルダから、変更があったファイルだけを backup にコピーしたい場合、次のように実行します。
cp -u project/* backup/
このコマンドは、project 内のファイルで、更新日時が新しいものだけを backup にコピーします。
4. -uと-vを組み合わせて視覚的に確認
どのファイルがコピーされたかを画面に表示したい場合は、-v(verbose)オプションと組み合わせるのがおすすめです。
cp -uv project/* backup/
'project/report.txt' -> 'backup/report.txt'
このように、コピーされたファイルだけが表示されるので、安心して作業を確認できます。
5. -uオプションが便利なケース
このオプションは以下のようなシーンで大活躍します。
- 毎日同じバックアップを取るとき
- 変更があったファイルだけを更新したいとき
- 外部メディア(USBなど)に効率よくコピーしたいとき
- 手作業で確認せず、スマートに処理したいとき
何度も同じ作業をしなくて済むので、ミスを減らすことにもつながります。
6. 他のよく使うオプションとの組み合わせ例
6-1. -rと-u(フォルダを丸ごと更新コピー)
ディレクトリを対象にするときは、-r(再帰的)を加えてください。
cp -ru project/ backup/
これで、ディレクトリ内の新しいファイルだけをまとめてコピーできます。
6-2. -iと-u(更新前に確認したいとき)
-i(interactive)は、上書き前に確認してくれるオプションです。
cp -ui file.txt backup/file.txt
cp: overwrite 'backup/file.txt'? y
自動処理ではなく、自分の目で確認したい場合に便利です。
7. cp -uとrsyncの違いって?
rsync(アールシンク)というコマンドも、更新されたファイルだけをコピーするのに使えますが、cp -uとの違いは次の通りです。
- cp -u:シンプルで初心者向け。基本的なコピー操作に最適。
- rsync:オプションが多く、高機能。ネットワーク越しのコピーも可能。
最初は cp -u を使いこなせれば十分です。慣れてきたら rsync に挑戦するのもおすすめです。