Linux
 Computer >> コンピューター >  >> システム >> Linux

Linuxのrsyncコマンドでファイルやフォルダをコピーする方法【実例付き】

押さえておきたいポイント

  • ファイル形式で絞り込んでコピー:rsync /home/jon/Desktop/data/*.jpg /home/jon/Desktop/backupdata/
  • ファイルサイズで絞り込んでコピー:rsync --max-size=2k /home/jon/Desktop/data/ /home/jon/Desktop/backupdata/
  • フォルダごと丸ごとコピー:rsync --recursive /home/jon/Desktop/data /home/jon/Desktop/data2

この記事では、Linuxのファイル転送プログラムrsyncを使って、ディレクトリやファイルをコピーする方法を解説します。rsyncは条件に応じて特定のファイルだけを体系的に除外できるため、アーカイブ対象のファイルだけを効率的にバックアップし、不要なものを自動的に避けるといった運用にも最適です。

コマンドの基本構文

rsyncコマンドを正しく使うには、まず正しい構文を理解しておく必要があります。

rsync [OPTION]... [SRC]... [DEST]
rsync [OPTION]... [SRC]... [USER@]HOST:DEST
rsync [OPTION]... [SRC]... [USER@]HOST::DEST
rsync [OPTION]... [SRC]... rsync://[USER@]HOST[:PORT]/DEST
rsync [OPTION]... [USER@]HOST:SRC [DEST]
rsync [OPTION]... [USER@]HOST::SRC [DEST]
rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST]

ローカル環境だけでなく、SSH経由やrsyncデーモン経由でリモートホストとの間でもコピーできるのが特徴です。よく使われる主なオプションは以下の通りです。

  • -v、--verbose:詳細表示(コマンドの動作内容を詳しく出力)
    • --info=FLAGS:詳細な情報メッセージを表示
    • --debug=FLAGS:詳細なデバッグメッセージを表示
    • --msgs2stderr:デバッグ用の特別な出力処理
  • -q、--quiet:エラー以外のメッセージを抑制
    • --no-motd:デーモンモードの「今日のメッセージ(MOTD)」を非表示
  • -c、--checksum:更新日時とサイズではなくチェックサムで比較し、同一と判断したファイルをスキップ
  • -r、--recursive:サブディレクトリ内のファイルも再帰的に処理
  • -b、--backup:上書き前にバックアップを作成
    • --backup-dir=DIR:対応するディレクトリ階層にバックアップを保存
    • --suffix=SUFFIX:バックアップファイル名の末尾に接尾辞を追加
  • -d、--dirs:中身を辿らず、ディレクトリ自体のみを転送

コマンドの使用例

これらのオプションを組み合わせることで、目的に合わせたきめ細かなバックアップ運用が可能になります。以下に代表的な使い方を紹介します。

ファイル形式で絞り込んでコピーする

rsync /home/jon/Desktop/data/*.jpg /home/jon/Desktop/backupdata/

この例では、ユーザーJonのデスクトップにある/data/フォルダ内のJPGファイルすべてが、同じくデスクトップ上の/backupdata/フォルダへコピーされます。ワイルドカード(*)を活用すれば、画像だけ、テキストだけといった選択的なコピーが簡単に行えます。

ファイルサイズで絞り込んでコピーする

rsync --max-size=2k /home/jon/Desktop/data/ /home/jon/Desktop/backupdata/

この例では少し高度な設定を行っており、2,048KBより大きいファイルはコピーしないようになっています。つまり、指定サイズ未満の小さなファイルだけがコピーされます。

サイズの単位には、1,024倍率のk(キロバイト)、m(メガバイト)、g(ギガバイト)、または1,000倍率のkb、mb、gbを指定できます。

rsync --min-size=30mb /home/jon/Desktop/data/ /home/jon/Desktop/backupdata/

逆に--min-sizeを使えば、下限サイズを指定することも可能です。この例では30MB以上のファイルだけがコピーされます。

rsync --min-size=30mb --progress /home/jon/Desktop/data/ /home/jon/Desktop/backupdata/

--progressオプションを付けると、進行状況が100%までリアルタイムで表示されます。容量の大きなファイルをコピーする際に特に便利です。

フォルダ全体をコピーする

rsync --recursive /home/jon/Desktop/data /home/jon/Desktop/data2

--recursiveオプションを使えば、フォルダ全体を別の場所へまとめてコピーできます。上の例では/data2/フォルダへのコピーになります。

このコマンドにより、フォルダとその中身すべてが新しい場所へそのまま複製されます。

特定のファイルを除外してコピーする

rsync -r --exclude="*.deb" /home/jon/Desktop/data /home/jon/Desktop/backupdata

フォルダ全体をコピーしながら、DEBファイルのような特定の拡張子を持つファイルだけを除外することもできます。前の例と同様に/data/フォルダ全体が/backupdata/へコピーされますが、DEBファイルのみコピー対象から外れます。--excludeはパターンを複数指定できるため、「キャッシュファイルや一時ファイルを除いてバックアップしたい」といった場面で非常に役立ちます。

  1. Windows 10/11でフォルダーやファイルを比較・同期する方法【無料ツール3選】

    Windowsでフォルダーやファイルを比較したい方は、ぜひこの記事を読んでみてください。ファイルやフォルダーの比較・同期に役立つ、無料で使える便利なツールをご紹介します。 大量のファイルをあるフォルダーから別のフォルダーへコピーしたとき、すべてのファイルが正しくコピー先に移ったか確認したいはずです。しかし、フォルダーやファイルを1つずつ手作業で比較して、同じ内容かどうかを確認するのは非常に手間がかかります。 この記事では、2つの異なるディレクトリの内容を簡単に比較し、完全なミラーコピーになるよう同期する方法を解説します。 Windows 11/10/8/7で2つのフォルダーの内容を比較・同期で

  2. Macでファイルとフォルダーを整理する方法|デスクトップをすっきり整頓する実践ガイド

    「良い秩序はすべての物事の基盤である」という言葉があります。あなたも同意しませんか?物を整理することは一度きりの作業ではなく、楽しみながら続けるべき「旅」のようなものです。家でも、仕事の机でも、身の回りの環境でも、整理整頓ができていれば生産性が向上し、手間を最小限に抑えながらより多くのことを達成できます。 さて、あなたが最後に単調な日常から時間を作って、Macの散らかったデスクトップを整理したのはいつでしょうか?そう、デスクトップはファイルやフォルダーが最初に置かれる場所であり、そのまま永遠に放置されがちな場所でもあるのです。 人には大きく分けて2種類います。1つ目は、散らかっていてもそれなり