Linuxでディレクトリの内容を効率的にコピーする方法

この記事では、Linuxでディレクトリの内容を効率的にコピーする方法について深掘りします。`cp` コマンドの基本的な使い方から、高度なオプションや、より高性能な `rsync` による方法までを取り上げ、具体的なコード例とその解説、応用例を含めています。

目次

基本的なディレクトリのコピー方法

まずは、Linuxの基本的なコマンド`cp`を使った方法から見ていきます。

cp -r /path/to/source_directory /path/to/destination/

上記のコードは、`source_directory` の内容を `destination` にコピーします。`-r` オプションは、ディレクトリとその内容を再帰的にコピーするために使用されます。

cpコマンドのオプション

– `-r` : ディレクトリとその内容を再帰的にコピー
– `-a` : アーカイブモード、ファイルの属性やシンボリックリンクも保持
– `-u` : ソースのファイルが宛先のファイルより新しい場合のみコピー
– `-v` : 詳細モード、実行中のコピー情報を表示

`rsync`を使った高効率なコピー

次に、大量のデータや大きなディレクトリを効率的にコピーする場合に使える`rsync`について紹介します。

rsync -av /path/to/source_directory/ /path/to/destination/

`rsync`は変更されたファイルだけを転送するため、`cp`よりも高速です。特に大きなデータのバックアップやミラーリングに向いています。

`rsync`の主なオプション

– `-a` : アーカイブモード
– `-v` : 詳細モード
– `–delete` : 宛先ディレクトリの余分なファイルやディレクトリを削除
– `–exclude` : 指定したパターンに一致するファイルやディレクトリを除外

応用例

1. バックアップ時に古いファイルを削除

rsync -av --delete /path/to/source_directory/ /path/to/backup_directory/

このコマンドで、`source_directory`の内容を`backup_directory`に同期します。そして、`backup_directory`に存在して、`source_directory`に存在しない古いファイルは自動的に削除されます。

2. 特定のファイルやディレクトリを除外してコピー

rsync -av --exclude 'pattern_to_exclude*' /path/to/source_directory/ /path/to/destination/

`pattern_to_exclude*` に一致するファイルやディレクトリを除外して、コピーします。

3. ネットワーク経由でのディレクトリのコピー

rsync -av /path/to/source_directory/ user@remote_host:/path/to/destination/

このコマンドを使用すると、ローカルマシンのディレクトリをリモートマシンにコピーできます。

4. 変更されたファイルのみをコピー

rsync -avu /path/to/source_directory/ /path/to/destination/

このコマンドは、`source_directory`内の新しいまたは変更されたファイルのみを`destination`にコピーします。

まとめ

Linuxでディレクトリの内容を効率的にコピーする方法は多々あります。目的やデータの量に応じて、適切なコマンドやオプションを選択することで、作業の効率を大きく向上させることができます。

created by Rinker
オライリージャパン
¥3,080 (2024/09/18 12:59:42時点 Amazon調べ-詳細)

コメント

コメントする

目次