Rsync
rsync copies files and directories. It is often used for backups, or duplicating directory contents on a remote server. rsync can copy only changed files, and can use SSH to securely copy the file.
Common Options
-a
- Combo flag, same as -rlptgoD (recursive; copies symlinks; preserve: permissions, modification times, group, and owner; device/special).
-v
- verbose
-n
- do a "dry run". Together with -v, -n shows what rsync will copy, but doesn't actually copy anything.
-z
- Compress the contents for transmission.
-P
- Show a progress bar, and resume interrupted transfers.
--delete
- By default, rsync doesn't delete anything. To truly sync a directory, add the --delete flag, and rsync will delete files to keep the source and destination directories the same. (Note: Use the -n flag with this command first, to confirm that rsync will delete only what you want it to delete.)
dir
vs dir/
:
dir
- Copy the directory
dir/
- Copy the contents of the directory
Sync Directories on the same computer
rsync -a dir1/ dir2
- Copies the contents of dir1 into dir2
Copy files to a remote system
Specify the directory you want to copy, then the destination.
rsync -a /dir1 username@remote_host:destination_directory
Example:
rsync -a /docs bob@example.com:/home/bob/public_html
- Copies the entire directory "docs" into directory /home/bob/public_html on the server.
You can reverse this to copy from the remote system to the local computer.
Example:
rsync -a bob@example.com:/home/bob/public_html/docs/ /home/bob/web_files/docs
- Copies the contents of /home/bob/public_html/docs/ into the local directory /home/bob/web_files/docs