{
"name": "rsync",
"description": "Rsync is a file transfer program capable of efficient remote update via a fast differencing algorithm",
"options": [
{
"names": [
"-v",
"--verbose"
],
"description": "Increase verbosity"
},
{
"names": [
"--info"
],
"description": "Fine-grained informational verbosity",
"takes_arg": true,
"arg": {
"name": "BACKUP",
"description": "Mention files backed up"
}
},
{
"names": [
"--debug"
],
"description": "Fine-grained debug verbosity",
"takes_arg": true,
"arg": {
"name": "BACKUP",
"description": "Mention files backed up"
}
},
{
"names": [
"--msgs2stderr"
],
"description": "Special output handling for debugging"
},
{
"names": [
"--quiet",
"-q"
],
"description": "Suppress non-error messages"
},
{
"names": [
"--no-motd"
],
"description": "Suppress daemon-mode MOTD (see manpage caveat)"
},
{
"names": [
"--checksum",
"-c"
],
"description": "Skip based on checksum, not mod-time & size"
},
{
"names": [
"-a",
"--archive"
],
"description": "Archive mode; equals -rlptgoD (no -H,-A,-X)"
},
{
"names": [
"--no-OPTION"
],
"description": "Turn off an implied OPTION (e.g. --no-D)"
},
{
"names": [
"-r",
"--recursive"
],
"description": "Recurse into directories"
},
{
"names": [
"-R",
"--relative"
],
"description": "Use relative path names"
},
{
"names": [
"--no-implied-dirs"
],
"description": "Don't send implied dirs with --relative"
},
{
"names": [
"-b",
"--backup"
],
"description": "Make backups (see --suffix & --backup-dir)"
},
{
"names": [
"--backup-dir"
],
"description": "Make backups into hierarchy based in DIR",
"takes_arg": true,
"arg": {
"name": "DIR",
"template": "folders"
}
},
{
"names": [
"--suffix"
],
"description": "Set backup suffix (default ~ w/o --backup-dir)",
"takes_arg": true,
"arg": {
"name": "SUFFIX"
}
},
{
"names": [
"-u",
"--update"
],
"description": "Skip files that are newer on the receiver"
},
{
"names": [
"--inplace"
],
"description": "Update destination files in-place (SEE MAN PAGE)"
},
{
"names": [
"--append"
],
"description": "Append data onto shorter files"
},
{
"names": [
"--append-verify"
],
"description": "Like --append, but with old data in file checksum"
},
{
"names": [
"-d",
"--dirs"
],
"description": "Transfer directories without recursing",
"takes_arg": true,
"arg": {
"name": "DIR",
"template": "folders"
}
},
{
"names": [
"-l",
"--links"
],
"description": "Copy symlinks as symlinks"
},
{
"names": [
"-L",
"--copy-links"
],
"description": "Transform symlink into referent file/dir"
},
{
"names": [
"--copy-unsafe-links"
],
"description": "Only \"unsafe\" symlinks are transformed"
},
{
"names": [
"--safe-links"
],
"description": "Ignore symlinks that point outside the source tree"
},
{
"names": [
"--munge-links"
],
"description": "Munge symlinks to make them safer (but unusable)"
},
{
"names": [
"-k",
"--copy-dirlinks"
],
"description": "Transform symlink to a dir into referent dir"
},
{
"names": [
"-K",
"--keep-dirlinks"
],
"description": "Treat symlinked dir on receiver as dir"
},
{
"names": [
"-H",
"--hard-links"
],
"description": "Preserve hard links"
},
{
"names": [
"-p",
"--perms"
],
"description": "Preserve permissions"
},
{
"names": [
"-E",
"--executability"
],
"description": "Preserve the file's executability"
},
{
"names": [
"--chmod"
],
"description": "Affect file and/or directory permissions",
"takes_arg": true,
"arg": {
"name": "CHMOD"
}
},
{
"names": [
"-A",
"--acls"
],
"description": "Preserve ACLs (implies --perms)"
},
{
"names": [
"-X",
"--xattrs"
],
"description": "Preserve extended attributes"
},
{
"names": [
"-o",
"--owner"
],
"description": "Preserve owner (super-user only)"
},
{
"names": [
"-g",
"--group"
],
"description": "Preserve group"
},
{
"names": [
"--devices"
],
"description": "Preserve device files (super-user only)"
},
{
"names": [
"--copy-devices"
],
"description": "Copy device contents as regular file"
},
{
"names": [
"--specials"
],
"description": "Preserve special files"
},
{
"names": [
"-D"
],
"description": "Same as --devices --specials"
},
{
"names": [
"-t",
"--times"
],
"description": "Preserve modification times"
},
{
"names": [
"-O",
"--omit-dir-times"
],
"description": "Omit directories from --times",
"takes_arg": true,
"arg": {
"name": "DIR",
"is_variadic": true,
"template": "folders"
}
},
{
"names": [
"-J",
"--omit-link-times"
],
"description": "Omit symlinks from --times"
},
{
"names": [
"--super"
],
"description": "Receiver attempts super-user activities"
},
{
"names": [
"--fake-super"
],
"description": "Store/recover privileged attrs using xattrs"
},
{
"names": [
"-S",
"--sparse"
],
"description": "Turn sequences of nulls into sparse blocks"
},
{
"names": [
"--preallocate"
],
"description": "Allocate dest files before writing them"
},
{
"names": [
"-n",
"--dry-run"
],
"description": "Perform a trial run with no changes made"
},
{
"names": [
"-W",
"--whole-file"
],
"description": "Copy files whole (without delta-xfer algorithm)"
},
{
"names": [
"--checksum-choice"
],
"description": "Choose the checksum algorithms",
"takes_arg": true,
"arg": {
"name": "ALGORITHM",
"suggestions": [
"auto",
"md4",
"md5",
"none"
]
}
},
{
"names": [
"-x",
"--one-file-system"
],
"description": "Don't cross filesystem boundaries"
},
{
"names": [
"-B",
"--block-size"
],
"description": "Force a fixed checksum block-size",
"takes_arg": true,
"arg": {
"name": "SIZE"
}
},
{
"names": [
"-e",
"--rsh"
],
"description": "Specify the remote shell to use",
"takes_arg": true,
"arg": {
"name": "COMMAND"
}
},
{
"names": [
"--rsync-path"
],
"description": "Specify the rsync to run on the remote machine",
"takes_arg": true,
"arg": {
"name": "PATH"
}
},
{
"names": [
"--existing"
],
"description": "Skip creating new files on receiver"
},
{
"names": [
"--ignore-existing"
],
"description": "Skip updating files that already exist on receiver"
},
{
"names": [
"--remove-source-files"
],
"description": "Sender removes synchronized files (non-dirs)"
},
{
"names": [
"--delete"
],
"description": "Delete extraneous files from destination dirs"
},
{
"names": [
"--delete-before"
],
"description": "Receiver deletes before transfer, not during"
},
{
"names": [
"--delete-during",
"--del"
],
"description": "Receiver deletes during the transfer"
},
{
"names": [
"--delete-delay"
],
"description": "Find deletions during, delete after"
},
{
"names": [
"--delete-after"
],
"description": "Receiver deletes after transfer, not during"
},
{
"names": [
"--delete-excluded"
],
"description": "Also delete excluded files from destination dirs"
},
{
"names": [
"--ignore-missing-args"
],
"description": "Ignore missing source args without error"
},
{
"names": [
"--delete-missing-args"
],
"description": "Delete missing source args from destination"
},
{
"names": [
"--ignore-errors"
],
"description": "Delete even if there are I/O errors"
},
{
"names": [
"--force"
],
"description": "Force deletion of directories even if not empty"
},
{
"names": [
"--max-delete"
],
"description": "Don't delete more than NUM files",
"takes_arg": true,
"arg": {
"name": "NUM"
}
},
{
"names": [
"--max-size"
],
"description": "Don't transfer any file larger than SIZE",
"takes_arg": true,
"arg": {
"name": "SIZE"
}
},
{
"names": [
"--min-size"
],
"description": "Don't transfer any file smaller than SIZE",
"takes_arg": true,
"arg": {
"name": "SIZE"
}
},
{
"names": [
"--partial"
],
"description": "Keep partially transferred files"
},
{
"names": [
"--partial-dir=DIR"
],
"description": "Put a partially transferred file into DIR",
"takes_arg": true,
"arg": {
"name": "DIR",
"template": "folders"
}
},
{
"names": [
"--delay-updates"
],
"description": "Put all updated files into place at transfer's end"
},
{
"names": [
"-m",
"--prune-empty-dirs"
],
"description": "Prune empty directory chains from the file-list"
},
{
"names": [
"--numeric-ids"
],
"description": "Don't map uid/gid values by user/group name"
},
{
"names": [
"--usermap"
],
"description": "Custom username mapping",
"takes_arg": true,
"arg": {
"name": "STRING"
}
},
{
"names": [
"--groupmap"
],
"description": "Custom groupname mapping",
"takes_arg": true,
"arg": {
"name": "STRING"
}
},
{
"names": [
"--chown=USER:GROUP"
],
"description": "Simple username/groupname mapping",
"takes_arg": true,
"arg": {
"name": "USER:GROUP"
}
},
{
"names": [
"--timeout"
],
"description": "Set I/O timeout in seconds",
"takes_arg": true,
"arg": {
"name": "SECONDS"
}
},
{
"names": [
"--contimeout"
],
"description": "Set daemon connection timeout in seconds",
"takes_arg": true,
"arg": {
"name": "SECONDS"
}
},
{
"names": [
"-I",
"--ignore-times"
],
"description": "Don't skip files that match in size and mod-time"
},
{
"names": [
"-M"
],
"description": "Send OPTION to the remote side only",
"takes_arg": true,
"arg": {
"name": "OPTION"
}
},
{
"names": [
"--remote-option"
],
"description": "Send OPTION to the remote side only",
"takes_arg": true,
"arg": {
"name": "OPTION"
}
},
{
"names": [
"--size-only"
],
"description": "Skip files that match in size"
},
{
"names": [
"-@"
],
"description": "Set the accuracy for mod-time comparisons",
"takes_arg": true,
"arg": {
"name": "NUM"
}
},
{
"names": [
"--modify-window"
],
"description": "Set the accuracy for mod-time comparisons",
"takes_arg": true,
"arg": {
"name": "NUM"
}
},
{
"names": [
"-T"
],
"description": "Create temporary files in directory DIR",
"takes_arg": true,
"arg": {
"name": "DIR",
"template": "folders"
}
},
{
"names": [
"--temp-dir"
],
"description": "Create temporary files in directory DIR",
"takes_arg": true,
"arg": {
"name": "DIR",
"template": "folders"
}
},
{
"names": [
"-y",
"--fuzzy"
],
"description": "Find similar file for basis if no dest file"
},
{
"names": [
"--compare-dest"
],
"description": "Also compare destination files relative to DIR",
"takes_arg": true,
"arg": {
"name": "DIR",
"template": "folders"
}
},
{
"names": [
"--copy-dest"
],
"description": "Also compare destination files relative to DIR and include copies of unchanged files",
"takes_arg": true,
"arg": {
"name": "DIR",
"template": "folders"
}
},
{
"names": [
"--link-dest"
],
"description": "Hardlink to files in DIR when unchanged",
"takes_arg": true,
"arg": {
"name": "DIR",
"template": "folders"
}
},
{
"names": [
"-z",
"--compress"
],
"description": "Compress file data during the transfer"
},
{
"names": [
"--compress-level"
],
"description": "Explicitly set compression level",
"takes_arg": true,
"arg": {
"name": "NUM",
"suggestions": [
"0",
"1",
"2",
"3",
"4",
"5",
"6",
"7",
"8",
"9"
]
}
},
{
"names": [
"--skip-compress"
],
"description": "Skip compressing files with a suffix in LIST",
"takes_arg": true,
"arg": {
"name": "LIST"
}
},
{
"names": [
"-C",
"--cvs-exclude"
],
"description": "Auto-ignore files the same way CVS does"
},
{
"names": [
"-f"
],
"description": "Add a file-filtering RULE",
"takes_arg": true,
"arg": {
"name": "RULE"
}
},
{
"names": [
"--filter"
],
"description": "Add a file-filtering RULE",
"takes_arg": true,
"arg": {
"name": "RULE"
}
},
{
"names": [
"-F"
],
"description": "Same as --filter='dir-merge /.rsync-filter'",
"takes_arg": true,
"arg": {
"name": "DIR",
"is_variadic": true,
"template": "folders"
}
},
{
"names": [
"--exclude"
],
"description": "Exclude files matching PATTERN",
"takes_arg": true,
"arg": {
"name": "PATTERN"
}
},
{
"names": [
"--exclude-from"
],
"description": "Read exclude patterns from FILE",
"takes_arg": true,
"arg": {
"name": "FILE",
"template": "filepaths"
}
},
{
"names": [
"--include"
],
"description": "Don't exclude files matching PATTERN",
"takes_arg": true,
"arg": {
"name": "PATTERN"
}
},
{
"names": [
"--include-from"
],
"description": "Read include patterns from FILE",
"takes_arg": true,
"arg": {
"name": "FILE",
"template": "filepaths"
}
},
{
"names": [
"--files-from"
],
"description": "Read list of source-file names from FILE",
"takes_arg": true,
"arg": {
"name": "FILE",
"template": "filepaths"
}
},
{
"names": [
"-0",
"--from0"
],
"description": "All *-from/filter files are delimited by 0s"
},
{
"names": [
"-s",
"--protect-args"
],
"description": "No space-splitting; only wildcard special-chars"
},
{
"names": [
"--address"
],
"description": "Bind address for outgoing socket to daemon",
"takes_arg": true,
"arg": {
"name": "ADDRESS"
}
},
{
"names": [
"--port"
],
"description": "Specify double-colon alternate port number",
"takes_arg": true,
"arg": {
"name": "PORT"
}
},
{
"names": [
"--sockopts"
],
"description": "Specify custom TCP options",
"takes_arg": true,
"arg": {
"name": "OPTIONS"
}
},
{
"names": [
"--blocking-io"
],
"description": "Use blocking I/O for the remote shell"
},
{
"names": [
"--stats"
],
"description": "Give some file-transfer stats"
},
{
"names": [
"-8",
"--8-bit-output"
],
"description": "Leave high-bit chars unescaped in output"
},
{
"names": [
"-h",
"--human-readable"
],
"description": "Output numbers in a human-readable format"
},
{
"names": [
"--progress"
],
"description": "Show progress during transfer"
},
{
"names": [
"-P"
],
"description": "Same as --partial --progress"
},
{
"names": [
"-i",
"--itemize-changes"
],
"description": "Output a change-summary for all updates"
},
{
"names": [
"--out-format"
],
"description": "Output updates using the specified FORMAT",
"takes_arg": true,
"arg": {
"name": "FORMAT"
}
},
{
"names": [
"--log-file"
],
"description": "Log what we're doing to the specified FILE",
"takes_arg": true,
"arg": {
"name": "FILE",
"template": "filepaths"
}
},
{
"names": [
"--log-file-format"
],
"description": "Log updates using the specified FMT",
"takes_arg": true,
"arg": {
"name": "FMT"
}
},
{
"names": [
"--password-file"
],
"description": "Read daemon-access password from FILE",
"takes_arg": true,
"arg": {
"name": "FILE",
"template": "filepaths"
}
},
{
"names": [
"--list-only"
],
"description": "List the files instead of copying them"
},
{
"names": [
"--bwlimit"
],
"description": "Limit socket I/O bandwidth",
"takes_arg": true,
"arg": {
"name": "RATE"
}
},
{
"names": [
"--stop-at"
],
"description": "Stop rsync at year-month-dayThour:minute",
"takes_arg": true,
"arg": {
"name": "y-m-dTh:m"
}
},
{
"names": [
"--time-limit"
],
"description": "Stop rsync after MINS minutes have elapsed",
"takes_arg": true,
"arg": {
"name": "MINS"
}
},
{
"names": [
"--outbuf"
],
"description": "Set output buffering to None, Line, or Block",
"takes_arg": true,
"arg": {
"name": "BUFFER",
"suggestions": [
"N",
"L",
"B"
]
}
},
{
"names": [
"--write-batch"
],
"description": "Write a batched update to FILE",
"takes_arg": true,
"arg": {
"name": "FILE",
"template": "filepaths"
}
},
{
"names": [
"--only-write-batch"
],
"description": "Like --write-batch but w/o updating destination",
"takes_arg": true,
"arg": {
"name": "FILE",
"template": "filepaths"
}
},
{
"names": [
"--read-batch"
],
"description": "Read a batched update from FILE",
"takes_arg": true,
"arg": {
"name": "FILE",
"template": "filepaths"
}
},
{
"names": [
"--protocol"
],
"description": "Force an older protocol version to be used",
"takes_arg": true,
"arg": {
"name": "NUM"
}
},
{
"names": [
"--iconv"
],
"description": "Request charset conversion of filenames",
"takes_arg": true,
"arg": {
"name": "CONVERT_SPEC"
}
},
{
"names": [
"--checksum-seed"
],
"description": "Set block/file checksum seed (advanced)",
"takes_arg": true,
"arg": {
"name": "NUM"
}
},
{
"names": [
"--noatime"
],
"description": "Do not alter atime when opening source files"
},
{
"names": [
"-4",
"--ipv4"
],
"description": "Prefer IPv4"
},
{
"names": [
"-6",
"--ipv6"
],
"description": "Prefer IPv6"
},
{
"names": [
"--version"
],
"description": "Print version number"
},
{
"names": [
"-h",
"--help"
],
"description": "Show help for rsync (-h is --help only if used alone)"
}
],
"args": [
{
"name": "SRC",
"is_variadic": true
},
{
"name": "DEST"
}
]
}