How do you get rsync to load a list of (full rules, not limited like --include-from) filter rules from a file?

rsync has various options for reading various config from files so that you don't have to chain a bunch of individual --include or --exclude options together. All of these options (as far as I cantell) read from a file on your local computer: --exclude-from=FILE --include-from=FILE --files-from=FILE

The doc for --files-from=FILE even clarifies that you can use it with either a local or remote FILE:

In addition, the --files-from file can be read from the remote host instead of the local host if you specify a "host:" in front of the file (the host must match one end of the transfer). As a short-cut, you can specify just a prefix of ":" to mean "use the remote end of the transfer".

What I'm wondering is where or what is the equivalent for --filter? We have --include and --include-from; --exclude and --exclude-from. But where's --filter-from? (Or what's the closest equivalent to it?)

The section on INCLUDE/EXCLUDE PATTERN RULES gives examples of using a list of pattern rules as if they were included in a file...

 + /some/ + /some/path/ + /some/path/this-file-is-found + /file-also-included - *

but the only mention I could find of using them in a file is with a file loaded from a merge or dir-merge:

 merge, . specifies a merge-file to read for more rules. dir-merge, : specifies a per-directory merge-file.

I couldn't find any mention of whether that refers to a merge-file on the local or remote hosts, but from what I've tried so far, it seems to only work with a file on the remote host.

1 Answer

That's exactly the option:

rsync --filter "merge /some/filterlist.conf"

(Note how -F is an alias to --filter "dir-merge /.rsync-filter".)

merge files are read from the local (client) system (unless you explicitly pass the option to the server using -M). If the source is remote, all filter rules are automatically sent to it.

Meanwhile dir-merge is always applied to the source, whether local or not. (Manual page: "These per-directory rule files must be created on the sending side because it is the sending side that is being scanned for the available files to transfer.")

3

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like