tt(rsync -av /src/foo/ /dest/foo)nl()
)
+Note also that host and module references don't require a trailing slash to
+copy the contents of the default directory. For example, both of these
+copy the remote directory's contents into "/dest":
+
+quote(
+tt(rsync -av host: /dest)nl()
+tt(rsync -av host::module /dest)nl()
+)
+
You can also use rsync in local-only mode, where both the source and
destination don't have a ':' in the name. In this case it behaves like
an improved copy command.
dit(bf(-p, --perms)) This option causes rsync to set the destination
permissions to be the same as the source permissions.
-Without this option, each new file gets its permissions set based on the
-source file's permissions and the umask at the receiving end, while all
-other files (including updated files) retain their existing permissions
+Without this option, all existing files (including updated files) retain
+their existing permissions, while each new file gets its permissions set
+based on the source file's permissions, but masked by the receiving end's
+umask setting
(which is the same behavior as other file-copy utilities, such as cp).
dit(bf(-o, --owner)) This option causes rsync to set the owner of the
(sent).
it() A bf(>) means that a file is being transferred to the local host
(received).
- it() A bf(c) means that a local change/creation is occuring for the item
+ it() A bf(c) means that a local change/creation is occurring for the item
(such as the creation of a directory or the changing of a symlink, etc.).
it() A bf(h) means that the item is a hard-link to another item (requires
bf(--hard-links)).
quote(itemize(
it() A bf(c) means the checksum of the file is different and will be
- updated by the file transfer (requries bf(--checksum)).
+ updated by the file transfer (requires bf(--checksum)).
it() A bf(s) means the size of the file is different and will be updated
by the file transfer.
it() A bf(t) means the modification time is different and is being updated
dit(bf(--write-batch=FILE)) Record a file that can later be applied to
another identical destination with bf(--read-batch). See the "BATCH MODE"
-section for details.
+section for details, and also the bf(--only-write-batch) option.
dit(bf(--only-write-batch=FILE)) Works like bf(--write-batch), except that
no updates are made on the destination system when creating the batch.
This lets you transport the changes to the destination system via some
-other means and then apply the changes via bf(--read-batch). Note that
-you can feel free to write the batch directly to some portable media: if
-this media fills to capacity before the end of the transfer, you can just
-apply that partial transfer to the destination and repeat the whole process
-to get the rest of the changes (as long as you don't mind a partially
-updated destination system while the multi-update cycle is happening).
+other means and then apply the changes via bf(--read-batch).
+
+Note that you can feel free to write the batch directly to some portable
+media: if this media fills to capacity before the end of the transfer, you
+can just apply that partial transfer to the destination and repeat the
+whole process to get the rest of the changes (as long as you don't mind a
+partially updated destination system while the multi-update cycle is
+happening).
+
+Also note that you only save bandwidth when pushing changes to a remote
+system because this allows the batched data to be diverted from the sender
+into the batch file without having to flow over the wire to the receiver
+(when pulling, the sender is remote, and thus can't write the batch).
dit(bf(--read-batch=FILE)) Apply all of the changes stored in FILE, a
file previously generated by bf(--write-batch).