# Replaces default cp with rsync.
# Usage: rcp <FROM> <TO>
function rcp() {
	rsync -ahP --chmod=u+w "${@}"
}

# Replaces default cp with rsync.
# Only compare file size.
# Usage: rcp_fast <FROM> <TO>
function rcp_fast() {
	rsync -ahP --chmod=u+w --size-only "${@}"
}

# Replaces default cp with rsync.
# Compare file hashes.
# Usage: rcp_hash <FROM> <TO>
function rcp_hash() {
	rsync -ahP --chmod=u+w --checksum "${@}"
}

# Copy and also merge all changes (delete dst files that do not exist in src).
# Usage: rcp_merge <FROM> <TO>
function rcp_merge() {
	rsync -ahP --chmod=u+w --delete "${@}"
}

# Copy and also merge all changes FAST (delete dst files that do not exist in src, only compare size).
# Usage: rcp_merge_fast <FROM> <TO>
function rcp_merge_fast() {
	rsync -ahP --chmod=u+w --delete --size-only "${@}"
}

# Copy and also merge all changes BY CHECKSUM (delete dst files that do not exist in src, compare hashes).
# Usage: rcp_merge_hash <FROM> <TO>
function rcp_merge_hash() {
	rsync -ahP --chmod=u+w --delete --checksum "${@}"
}

# Print output of cp_merge without writing anything.
# Usage: rcp_test <FROM> <TO>
function rcp_test() {
	rsync -ahP --chmod=u+w --delete -n "${@}"
}

# Copy by creating hardlinks.
# Works for directories, too.
# Usage: cp_link <FROM> <TO>
function cp_link() {
	/usr/bin/env cp -lr "${@}"
}