Improve `--mkpath` a bit more.
authorWayne Davison <wayne@opencoder.net>
Sun, 16 Oct 2022 19:23:39 +0000 (12:23 -0700)
committerWayne Davison <wayne@opencoder.net>
Sun, 16 Oct 2022 19:27:30 +0000 (12:27 -0700)
rsync.1.md

index 65cf881515f39f2dbe2d87697522984881641861..ee0a4f39463dab133880643cbae0a0362608671c 100644 (file)
@@ -436,7 +436,7 @@ has its own detailed description later in this manpage.
 --append-verify          --append w/old data in file checksum
 --dirs, -d               transfer directories without recursing
 --old-dirs, --old-d      works like --dirs when talking to old rsync
---mkpath                 create the destination's path component
+--mkpath                 create destination's missing path components
 --links, -l              copy symlinks as symlinks
 --copy-links, -L         transform symlink into referent file/dir
 --copy-unsafe-links      only "unsafe" symlinks are transformed
@@ -1149,23 +1149,25 @@ expand it.
 
 0.  `--mkpath`
 
-    Create a missing path component of the destination path. By default, rsync
-    allows only the final element of the destination path to not exist, which
-    is an attempt to help you to validate your destination path.  With this
-    option, rsync creates all the missing destination-path components just as
-    if `mkdir -p $DEST_PATH` had been run.
+    Create all missing path components of the destination path.
+
+    By default, rsync allows only the final component of the destination path
+    to not exist, which is an attempt to help you to validate your destination
+    path.  With this option, rsync creates all the missing destination-path
+    components, just as if `mkdir -p $DEST_PATH` had been run on the receiving
+    side.
 
     When specifying a destination path, including a trailing slash ensures that
-    rsync always treats the whole path as the directory name to be created,
-    even if the source arg is a single filename. See the [COPYING TO A
-    DIFFERENT NAME](#) section for full details on how rsync decides if a final
-    destination path element is a directory element or not.
+    the whole path is treated as directory names to be created, even when the
+    file list has a single item. See the [COPYING TO A DIFFERENT NAME](#)
+    section for full details on how rsync decides if a final destination-path
+    component should be created as a directory or not.
 
     If you would like the newly-created destination dirs to match the dirs on
     the sending side, you should be using [`--relative`](#opt) (`-R`) instead
     of `--mkpath`.  For instance, the following two commands result in the same
-    destination tree, but it is only the second command that ensures that the
-    "some/extra/path" elements match the dirs on the sending side:
+    destination tree, but only the second command ensures that the
+    "some/extra/path" components match the dirs on the sending side:
 
     >     rsync -ai --mkpath host:some/extra/path/*.c some/extra/path/
     >     rsync -aiR host:some/extra/path/*.c ./