X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/4c72f27dd90c8a028f67305aa01c822a07aae484..0e82af2d27d1db8cad2d7621a2923c9ba9d5a033:/rsync.yo diff --git a/rsync.yo b/rsync.yo index 8e2e4b7c..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 @@ -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. @@ -734,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, @@ -762,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 @@ -1160,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 @@ -1586,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