← All cheatsheets

Shell

rsync — the file-sync commands that cover daily work

## Local copy
`rsync -av src/ dst/` — archive mode, verbose, sync src into dst (trailing slash matters)
`rsync -av src dst/` — copies the src dir itself into dst/
`rsync -avn src/ dst/` — dry run (`-n`)

## Over SSH
`rsync -av src/ user@host:/path/` — push to remote
`rsync -av user@host:/path/ dst/` — pull from remote
`rsync -av -e "ssh -p 2222" src/ user@host:/path/` — non-default port

## Useful flags
`-z` — compress in transit (slow network)
`-P` / `--progress` — show per-file progress
`--delete` — delete files on dst not in src (true mirror — careful)
`--exclude='*.log'` / `--exclude-from=file` — skip patterns
`-h` — human-readable sizes
`--bwlimit=10000` — cap bandwidth (KB/s)

## Resumable big transfer
`rsync -avP --partial src/ dst/` — partial keeps interrupted file fragments for resume