rcloneのフィルタルール徹底解説:インクルード・エクスクルードパターンで賢く同期する
すべてを同期するのは無駄ですし、間違ったものを同期するのは危険です。rcloneのフィルタルールを使えば、転送対象を精密にコントロールできます——ただし構文が分かりにくいこともあります。このガイドでは、実践的な例を交えてすべてを分かりやすく解説します。
クラウド間でファイルを同期またはコピーする際、すべてのファイルが必要になることはほとんどありません。.pdfファイルだけが必要だったり、.tmpファイル以外すべてが必要だったり、過去7日間に更新されたファイルだけ、あるいは100MB未満のファイルだけが必要な場合もあるでしょう。rcloneのフィルタシステムはこれらすべてに対応しており、RcloneViewではジョブ設定でこれらのフィルタをビジュアルに設定できます。

すべてのクラウドを一か所で管理・同期
RcloneViewはrcloneのクロスプラットフォームGUIです。フォルダを比較し、ファイルを転送・同期し、クリーンなビジュアルインターフェースでマルチクラウドのワークフローを自動化できます。
- ワンクリック操作: コピー · 同期 · 比較
- 信頼性の高い自動化のためのスケジューラーと履歴
- Google Drive、OneDrive、Dropbox、S3、WebDAV、SFTPなどに対応
コア機能は無料。Plusで自動化機能を利用可能。
rcloneフィルタの仕組み
rcloneはフィルタルールを上から順に処理します。各ファイルに対して、ルールを一つずつチェックします:
- ルールに一致した場合、そのファイルは(ルールに応じて)インクルードまたはエクスクルードされます。
- どのルールにも一致しない場合、そのファイルはデフォルトでインクルードされます。
この「最初に一致したものが優先される」という動作を理解することが重要です。順序が意味を持ちます。
基本パターン
特定のファイルやフォルダを除外する
--exclude "*.tmp"
--exclude "node_modules/**"
--exclude ".DS_Store"
これらのパターンは以下を除外します:
- ツリー内のどこにあっても、すべての
.tmpファイル。 node_modulesフォルダとその中身全体。- すべての
.DS_Storeファイル(macOSのメタデータ)。
特定のファイルのみをインクルードする
--include "*.pdf"
--include "*.docx"
--includeを使用すると、rcloneはそれ以外のすべてを自動的に除外します。つまり--include "*.pdf"は「PDFだけを同期し、他は同期しない」という意味になります。
includeとexcludeを組み合わせる
--include "*.jpg"
--include "*.png"
--exclude "*"
これは、JPGファイルとPNGファイルのみを明示的にインクルードします。末尾の--exclude "*"が残りのすべてを捕捉します。
--filterフラグ
--filterフラグを使うと、1つのルールでインクルードとエクスクルードの両方を指定できます:
--filter "+ *.pdf"
--filter "+ *.docx"
--filter "- *"
+プレフィックスはインクルード、-はエクスクルードを意味します。これは個別の--includeと--excludeフラグと同等ですが、より簡潔です。
filter-fromファイル
複雑なルールセットの場合は、フィルタをファイルにまとめましょう:
--filter-from /path/to/filters.txt
filters.txt:
# Include documents
+ *.pdf
+ *.docx
+ *.xlsx
# Include images
+ *.jpg
+ *.png
# Exclude everything else
- *
#で始まる行はコメントです。2〜3個以上のルールを持つ同期ジョブには、この方法が推奨されます。