X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/5d9530fe47241bf21435bd89f10981cde25f50f8..0e82af2d27d1db8cad2d7621a2923c9ba9d5a033:/rsync.yo diff --git a/rsync.yo b/rsync.yo index e7fd8faa..9faf38e0 100644 --- a/rsync.yo +++ b/rsync.yo @@ -329,8 +329,8 @@ to the detailed description below for a complete description. verb( -B, --block-size=SIZE force a fixed checksum block-size -e, --rsh=COMMAND specify the remote shell to use --rsync-path=PROGRAM specify the rsync to run on remote machine + --existing ignore non-existing files on receiving side --ignore-existing ignore files that already exist on receiver - --ignore-non-existing ignore files that don't exist on receiver --remove-sent-files sent files/symlinks are removed from sender --del an alias for --delete-during --delete delete files that don't exist on sender @@ -552,8 +552,17 @@ dit(bf(-b, --backup)) With this option, preexisting destination files are renamed as each file is transferred or deleted. You can control where the backup file goes and what (if any) suffix gets appended using the bf(--backup-dir) and bf(--suffix) options. -Note that if you don't specify bf(--backup-dir), the bf(--omit-dir-times) -option will be enabled. + +Note that if you don't specify bf(--backup-dir), (1) the +bf(--omit-dir-times) option will be implied, and (2) if bf(--delete) is +also in effect (without bf(--delete-excluded)), rsync will add a protect +filter-rule for the backup suffix to the end of all your existing excludes +(e.g. -f "P *~"). This will prevent previously backed-up files from being +deleted. Note that if you are supplying your own filter rules, you may +need to manually insert your own exclude/protect rule somewhere higher up +in the list so that it has a high enough priority to be effective (e.g., if +your rules specify a trailing inclusion/exclusion of '*', the auto-added +rule would never be reached). dit(bf(--backup-dir=DIR)) In combination with the bf(--backup) option, this tells rsync to store all backups in the specified directory. This is @@ -615,11 +624,11 @@ data is required). dit(bf(-d, --dirs)) Tell the sending side to include any directories that are encountered. Unlike bf(--recursive), a directory's contents are not copied -unless the directory was specified on the command-line as either "." or a -name with a trailing slash (e.g. "foo/"). Without this option or the +unless the directory name specified is "." or ends with a trailing slash +(e.g. ".", "dir/.", "dir/", etc.). Without this option or the bf(--recursive) option, rsync will skip all directories it encounters (and output a message to that effect for each one). If you specify both -bf(--dirs) and bf(--recursive), the latter takes precedence. +bf(--dirs) and bf(--recursive), bf(--recursive) takes precedence. dit(bf(-l, --links)) When symlinks are encountered, recreate the symlink on the destination. @@ -710,6 +719,8 @@ item that should only apply to a file by prefixing it with a 'F'. For example: quote(--chmod=Dg+s,ug+w,Fo-w,+X) +It is also legal to specify multiple bf(--chmod) options. + dit(bf(-n, --dry-run)) This tells rsync to not do any file transfers, instead it will just report the actions it would have taken. @@ -725,16 +736,29 @@ dit(bf(-x, --one-file-system)) This tells rsync not to cross filesystem boundaries when recursing. This is useful for transferring the contents of only one filesystem. +dit(bf(-x, --one-file-system)) This tells rsync to avoid recursing into a +directory that is the mount-point for another filesystem, including (as of +2.6.7), "bind" mount-points. You can still copy the contents of multiple +file systems if you include a source dir from each file system -- this just +limits rsync's directory-recursion algorithm. + +Rsync will copy the directory at each encountered mount-point unless this +option is repeated. Note, however, that the attributes of this mount-point +directory are copied from those currently visible in the filesystem, not +the inaccessible attributes of the underlying directory. + +This option does not affect the "collapsing" of symlinks that options such +as bf(--copy-links) perform, irrespective of what filesystem the symlink's +referent may be on. + +dit(bf(--existing, --ignore-non-existing)) This tells rsync to skip +updating files that do not exist yet on the destination. If this option is +combined with the bf(--ignore-existing) option, no files will be updated +(which can be useful if all you want to do is to delete missing files). + dit(bf(--ignore-existing)) This tells rsync to skip updating files that already exist on the destination. See also bf(--ignore-non-existing). -dit(bf(--ignore-non-existing)) This tells rsync to skip updating files that -do not exist yet on the destination. If this option is combined with the -bf(--ignore-existing) option, no files will be updated (which can be useful -if all you want to do is to delete missing files). Note that in older -versions of rsync, this option was named bf(--existing), so this older -name is still accepted as an alias. - dit(bf(--remove-sent-files)) This tells rsync to remove from the sending side the files and/or symlinks that are newly created or whose content is updated on the receiving side. Directories and devices are not removed, @@ -753,7 +777,7 @@ include/exclude modifiers in the FILTER RULES section). Prior to rsync 2.6.7, this option would have no effect unless bf(--recursive) was in effect. Beginning with 2.6.7, deletions will also occur when bf(--dirs) -is specified, but only for directories whose contents are being copied. +(bf(-d)) is in effect, but only for directories whose contents are being copied. This option can be dangerous if used incorrectly! It is a very good idea to run first using the bf(--dry-run) option (bf(-n)) to see what files would be @@ -1151,6 +1175,10 @@ ssh prefers non-blocking I/O.) dit(bf(-i, --itemize-changes)) Requests a simple itemized list of the changes that are being made to each file, including attribute changes. This is exactly the same as specifying bf(--log-format='%i %n%L'). +If you repeat the option, unchanged files will also be output, but only +if the receiving rsync is at least version 2.6.7 (you can use bf(-vv) +with older versions of rsync, but that also turns on the output of other +verbose messages). The "%i" escape has a cryptic output that is 9 letters long. The general format is like the string bf(UXcstpoga)), where bf(U) is replaced by the @@ -1276,10 +1304,10 @@ will prevent partial-dir files from being transferred and also prevent the untimely deletion of partial-dir items on the receiving side. An example: the above bf(--partial-dir) option would add an "bf(--exclude=.rsync-partial/)" rule at the end of any other filter rules. Note that if you are -supplying your own filter rules, you may need to manually insert a -rule for this directory exclusion somewhere higher up in the list so that +supplying your own exclude rules, you may need to manually insert your own +exclude/protect rule somewhere higher up in the list so that it has a high enough priority to be effective (e.g., if your rules specify -a trailing bf(--exclude='*') rule, the auto-added rule would never be +a trailing inclusion/exclusion of '*', the auto-added rule would never be reached). IMPORTANT: the bf(--partial-dir) should not be writable by other users or it @@ -1577,18 +1605,27 @@ itemize( of the transfer. it() if the pattern ends with a / then it will only match a directory, not a file, link, or device. - it() if the pattern contains a wildcard character from the set - *?[ then expression matching is applied using the shell filename - matching rules. Otherwise a simple string match is used. - it() the double asterisk pattern "**" will match slashes while a - single asterisk pattern "*" will stop at slashes. - it() if the pattern contains a / (not counting a trailing /) or a "**" + + it() rsync chooses between doing a simple string match and wildcard + matching by checking if the pattern contains one of these three wildcard + characters: '*', '?', and '[' . + it() a '*' matches any non-empty path component (it stops at slashes). + it() use '**' to match anything, including slashes. + it() a '?' matches any character except a slash (/). + it() a '[' introduces a character class, such as [a-z] or [[:alpha:]]. + it() in a wildcard pattern, a backslash can be used to escape a wildcard + character, but it is matched literally when no wildcards are present. + it() if the pattern contains a / (not counting a trailing /) or a "**", then it is matched against the full pathname, including any leading directories. If the pattern doesn't contain a / or a "**", then it is matched only against the final component of the filename. (Remember that the algorithm is applied recursively so "full filename" can actually be any portion of a path from the starting directory on down.) + it() a trailing "dir_name/***" will match both the directory (as if + "dir_name/" had been specified) and all the files in the directory + (as if "dir_name/**" had been specified). (This behavior is new for + version 2.6.7.) ) Note that, when using the bf(--recursive) (bf(-r)) option (which is implied by