rsync
-
general
-a: archive mode, equals, -rlptgoD, in a word, it is recursive and preserve almost everything from source to target. -v: verbose -P: equals --progress --partial, show progress, and allow resume.
-
Copy with exclusion
# copy source to destination, excluding source/folder rsync -avP source/ destination --exclude folder # exclude multiple rsync -avP source/ destination --exclude=folder --exclude=folder2 # must add = rsync -avP source/ destination --exclude={folder,folder2} # brace expansion, no space after the comma !!!
-
alternative of
scp
# default port 22 rsync -avP -e ssh local_file user@ip:remote_file # custom ssh port rsync -avP -e "ssh -p 23" local_file user@ip:remote_file
-
Super fast remove (for large and recursive directories)
mkdir empty_dir rsync -a --delete empty_dir/ dir_to_delete/ # much more faster than rm -rf rm -rf empty_dir