【Linux】cpコマンドでディレクトリを再帰的にコピーする方法

【Linux】cpコマンドでディレクトリを再帰的にコピーする方法

記事の文字数:1482

Linuxのcpコマンドによる再帰的なディレクトリコピーの方法を解説します。再帰的なコピーは-rオプションを使用します。他にも基本構文や-rと組み合わせる際に便利なオプションや使用例、トラブル対処法も紹介します。


スポンサーリンク

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オプションを追加することで進行状況を把握しながら操作を行うこともできます。

日常的なファイル管理やバックアップにぜひ活用してみてください!


以上で本記事の解説を終わります。
よいITライフを!
スポンサーリンク
Scroll to Top