rclone --filter
The filter engine gives you ordered allow/deny control for complex selection logic that include/exclude flags alone cannot express cleanly. This guide focuses on rule precedence, readability, and safe testing so advanced filters remain understandable and operationally safe.
Syntax
rclone copy SRC DST --filter "+ PATTERN" --filter "- PATTERN"
Inline Rule Example
rclone copy /srv/app remote:backup/app \
--filter "+ **/*.php" \
--filter "+ **/*.json" \
--filter "- **"
Filter File Pattern (Recommended)
/etc/rclone/app.filter
+ **/*.php
+ **/*.json
- **
rclone copy /srv/app remote:backup/app --filter-from /etc/rclone/app.filter --dry-run -vv
Notes
- Rule order matters. First matching rule wins.
- Put specific allow rules before broad deny rules.
- Prefer
--filter-fromfor long rule sets.
Examples with Output
1. Allow PHP then deny rest
Input command:
rclone copy /srv/app remote:backup/app --filter "+ **/*.php" --filter "- **" --dry-run
Expected output:
NOTICE: filter rules applied
Would transfer 64 files
2. Allow JSON and YAML
Input command:
rclone copy /srv/app remote:backup/app --filter "+ **/*.json" --filter "+ **/*.yml" --filter "- **" --dry-run
Expected output:
NOTICE: JSON/YML rules matched
Would transfer 28 files
3. Deny logs with filter
Input command:
rclone sync /srv/app remote:backup/app --filter "- **/*.log" --dry-run
Expected output:
NOTICE: log files denied
Would transfer 93 files
4. Filter by folder allow-list
Input command:
rclone copy /srv/www remote:backup/www --filter "+ wp-content/uploads/**" --filter "- **" --dry-run
Expected output:
NOTICE: uploads folder allowed
Would transfer 241 files
5. Filter include then deny cache
Input command:
rclone copy /srv/app remote:backup/app --filter "+ **/*.php" --filter "- **/cache/**" --filter "- **" --dry-run
Expected output:
NOTICE: php allowed, cache denied
Would transfer 52 files
6. Use filter-from file
Input command:
rclone copy /srv/app remote:backup/app --filter-from /etc/rclone/app.filter --dry-run
Expected output:
NOTICE: loaded filter-from rules
Would transfer 73 files
7. Filter-from verbose
Input command:
rclone copy /srv/app remote:backup/app --filter-from /etc/rclone/app.filter --dry-run -vv
Expected output:
DEBUG: Matched include rule: src/main.php
INFO : 73 files selected by filter
8. Filter for docs and images
Input command:
rclone copy /srv/site remote:backup/site --filter "+ **/*.md" --filter "+ **/*.png" --filter "- **" --dry-run
Expected output:
NOTICE: docs/images selected
Would transfer 88 files
9. Filter to skip secrets
Input command:
rclone sync /srv/app remote:backup/app --filter "- **/.env*" --filter "- **/*id_rsa*" --dry-run
Expected output:
NOTICE: secret files denied
Would transfer 95 files
10. Filter by release tag files
Input command:
rclone copy /srv/releases remote:archive/releases --filter "+ **/*-v2026*.tar.gz" --filter "- **" --dry-run
Expected output:
NOTICE: tagged release artifacts selected
Would transfer 6 files
11. Filter with max-age
Input command:
rclone copy /srv/logs remote:archive/logs --filter "+ **/*.log" --filter "- **" --max-age 30d --dry-run
Expected output:
NOTICE: filter + max-age applied
Would transfer 21 files
12. Filter for migration sql
Input command:
rclone copy /srv/db remote:archive/db --filter "+ **/migration/*.sql" --filter "- **" --dry-run
Expected output:
NOTICE: migration SQL selected
Would transfer 9 files
13. Filter for terraform module
Input command:
rclone copy /srv/iac remote:backup/iac --filter "+ modules/**" --filter "+ **/*.tf" --filter "- **" --dry-run
Expected output:
NOTICE: modules and tf files selected
Would transfer 34 files
14. Filter with checksum
Input command:
rclone copy /srv/app remote:backup/app --filter-from /etc/rclone/app.filter --checksum --dry-run
Expected output:
NOTICE: checksum mode with filter rules
Would transfer 19 changed files
15. Filter sync with backup-dir
Input command:
rclone sync /srv/app remote:backup/app --filter-from /etc/rclone/app.filter --backup-dir remote:backup/app-deleted --dry-run
Expected output:
NOTICE: backup-dir active for filtered sync
Would copy 73 files, move 4 deletes