X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/4c72f27dd90c8a028f67305aa01c822a07aae484..669302a172bad3ad72f64ad4fe7394e7ef6a1dd3:/rsync.yo diff --git a/rsync.yo b/rsync.yo index 8e2e4b7c..50f06b9f 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 @@ -624,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. @@ -719,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. @@ -730,20 +732,32 @@ NOTE: Don't use this option when the destination is a Solaris "tmpfs" filesystem. It doesn't seem to handle seeks over null regions correctly and ends up corrupting the files. -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 crossing a +filesystem boundary when recursing. This does not limit the user's ability +to specify items to copy from multiple filesystems, just rsync's recursion +through the hierarchy of each directory that the user specified, and also +the analogous recursion on the receiving side during deletion. Also keep +in mind that rsync treats a "bind" mount to the same device as being on the +same filesystem. + +If this option is repeated, rsync omits all mount-point directories from +the copy. Otherwise, it includes an empty directory at each mount-point it +encounters (using the attributes of the mounted directory because those of +the underlying mount-point directory are inaccessible). + +If rsync has been told to collapse symlinks (via bf(--copy-links) or +bf(--copy-unsafe-links)), a symlink to a directory on another device is +treated like a mount-point. Symlinks to non-directories are unaffected +by this option. + +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, @@ -762,7 +776,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 @@ -1160,9 +1174,13 @@ 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 +format is like the string bf(UXcstpog)), where bf(U) is replaced by the kind of update being done, bf(X) is replaced by the file-type, and the other letters represent attributes that may be output if they are being modified. @@ -1210,8 +1228,6 @@ quote(itemize( sender's value (requires bf(--owner) and root privileges). it() A bf(g) means the group is different and is being updated to the sender's value (requires bf(--group) and the authority to set the group). - it() The bf(a) is reserved for a future enhanced version that supports - extended file attributes, such as ACLs. )) One other output is possible: when deleting files, the "%i" will output @@ -1586,18 +1602,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