Linuxのcpコマンドはファイルやディレクトリをコピーするための便利なコマンドです。
本記事では、cpコマンドを使ってディレクトリを再帰的にコピーする方法について、詳しく解説します。
cpコマンドで再帰的なコピーをする
cpコマンドは、LinuxやUnix系システムでファイルやディレクトリをコピーするためのコマンドです。cpは単一ファイルのコピーだけでなく、ディレクトリ全体をコピーすることも可能です。
基本的な構文は以下の通りです。
cp [オプション] コピー元 コピー先再帰的なコピーとは
再帰的なコピーとは、ディレクトリの中身を含めて階層構造全体をコピーすることです。
これにより、サブディレクトリ内のファイルやさらに深い階層の内容も含めてコピーすることが可能です。
cp -rオプションの使い方
再帰的なコピーを行うには、-rまたは--recursiveオプションを使用します。
このオプションは、ディレクトリ全体を含むコピー操作を可能にします。
構文は以下の通りです。
cp -r コピー元ディレクトリ コピー先ディレクトリ以下に実行例を示します。
cp -r /path/to/source /path/to/destination使用例
ディレクトリを別の場所にコピーする
たとえば、/home/user/documentsを/backup/documentsにコピーするには、以下のコマンドを使用します。
cp -r /home/user/documents /backup/これにより、documentsディレクトリとその中のすべてのファイル・サブディレクトリが/backup配下にコピーされます。
コピーの進行状況を表示する
コピー操作中に詳細な進行状況を確認したい場合は、-v(verbose)オプションを追加します。
cp -rv /home/user/documents /backup/このコマンドは、コピーされるファイルやディレクトリの名前を逐一ターミナルに出力します。
パーミッション、所有者、タイムスタンプを保持する
コピー元のパーミッション、所有者、タイムスタンプを保持したい場合は-pオプションを指定します。
cp -rp /home/user/documents /backup/既存ファイルより新しい場合のみコピーする
既存ファイルより新しいファイルのみコピーしたい場合は-uオプションを指定します。
cp -ru /home/user/documents /backup/オプションまとめ
各オプションをまとめると以下の通りです。
| オプション | 説明 |
|---|---|
-r | ディレクトリを再帰的にコピー |
-p | パーミッション、タイムスタンプなどを保持 |
-v | 実行中のコピー操作を詳細に表示 |
-u | 既存ファイルより新しい場合のみコピー |
必要に応じて各オプションを組み合わせることで、柔軟に再帰的なコピーを実行することができます。
cp -rpvu /home/user/documents /backup/よくあるエラーとその対処方法
「Permission denied」エラー
Permission deniedはディレクトリのアクセス権限が不足している場合に発生するエラーです。
この場合、sudoコマンドを使用して管理者権限で操作を行います。
sudo cp -r /home/user/documents /backup/ディスク容量不足エラー
コピー先のディスク容量が不足している場合に発生します。
dfコマンドでディスクの空き容量を確認しましょう。
df -h不要なファイルを削除してスペースを確保してください。
まとめ
Linuxのcpコマンドを使えば、ディレクトリを再帰的にコピーすることが簡単にできます。
-rオプションを活用することで、ディレクトリ構造全体をそのままコピー可能です。
さらに、-vオプションを追加することで進行状況を把握しながら操作を行うこともできます。
日常的なファイル管理やバックアップにぜひ活用してみてください!
Linuxユーザにお勧めの本
以上で本記事の解説を終わります。
よいITライフを!