Document the behavior of -ii.
[rsync/rsync.git] / rsync.yo
index 8e2e4b7..d06d87f 100644 (file)
--- 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
  -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-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
      --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
@@ -734,16 +734,14 @@ 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.
 
 boundaries  when recursing.  This  is useful for transferring the
 contents of only one filesystem.
 
+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-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,
 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,
@@ -1160,6 +1158,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').
 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
 
 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 +1588,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.
   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.)
   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
 )
 
 Note that, when using the bf(--recursive) (bf(-r)) option (which is implied by