Compare commits

...

3 Commits

Author SHA1 Message Date
Michael Stumpf 4a76b5440c deactivated rsync incremental recursive algorithm to get better progress estimation 2021-07-20 14:04:17 +02:00
Michael Stumpf ae200cb416 no preservation of modification time 2021-07-20 14:03:04 +02:00
Michael Stumpf b57a34226e added no-clobber flag 2021-07-20 14:02:24 +02:00
1 changed files with 12 additions and 6 deletions

18
icp
View File

@ -3,10 +3,12 @@ usage() {
echo >&2 "Usage: $(basename $0) [OPTION] SOURCE... DEST"
echo >&2 "Copy like cp, but use rsync in the background."
echo >&2 "Options:"
echo >&2 " -h print this help message"
echo >&2 " -n print rsync command and perform a dry-run"
echo >&2 " -r copy directories recursively"
echo >&2 " -v verbose output"
echo >&2 " -h print this help message"
echo >&2 " -L follow symlinks in source"
echo >&2 " -n no-clobber, do not overwrite existing files"
echo >&2 " -r copy directories recursively"
echo >&2 " -v verbose output"
echo >&2 " --dry-run print rsync command and perform a dry-run"
echo >&2 "Positional arguments:"
echo >&2 " SOURCE file/directory to copy"
echo >&2 " DEST target directory or filename (if only one SOURCE)"
@ -21,7 +23,7 @@ EXIT_INVALID_PATH=3 # rsync: Errors selecting input/output files, dirs
# -remove trailing slash from directories
flag_recursive=0
flag_dryrun=0
rsync_opt=("-lptgoD")
rsync_opt=("-lpgoD")
rsync_arg=()
for arg in "$@"
do
@ -31,9 +33,13 @@ do
elif [[ "$arg" == "-r" ]];then
flag_recursive=1
rsync_opt+=("-r")
elif [[ "$arg" == "-L" ]];then
rsync_opt+=("-L")
elif [[ "$arg" == "-v" ]];then
rsync_opt+=("-v")
elif [[ "$arg" == "-n" ]];then
rsync_opt+=("--ignore-existing")
elif [[ "$arg" == "--dry-run" ]];then
flag_dryrun=1
rsync_opt+=("-nv")
elif [[ -f "$arg" ]];then
@ -65,7 +71,7 @@ fi
# If this is not a dry-run, add a nice overall
# progress bar
if [[ "$flag_dryrun" -eq 0 ]]; then
rsync_opt+=("--info=progress2")
rsync_opt+=("--info=progress2 --no-inc-recursive")
fi
# Construct command