From 7fcff2853ac73e9435b0d903b3faea5878ddcfb6 Mon Sep 17 00:00:00 2001 From: Kevin Date: Sat, 19 Jan 2019 16:46:34 -0500 Subject: [PATCH] Duplicate marked files Issue #39 --- fff | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/fff b/fff index df6672a..f88496c 100755 --- a/fff +++ b/fff @@ -336,6 +336,7 @@ mark() { case "$2" in y) file_program=(cp -R) ;; m) file_program=(mv) ;; + Y) file_program=(duplicate) ;; # Trash is an 'fff' function. d) file_program=(trash) ;; @@ -364,6 +365,21 @@ trash() { fi } +duplicate() { + cmd_line "duplicate [${#marked_files[@]}] items? [y/n]: " y n + + [[ $cmd_reply != y ]] && + return + + for file in "${marked_files[@]}"; do + if [[ ! -e "$file" ]]; then + continue; + else + cp "$file" "${mark_dir}/copy_${file##*/}" + fi + done +} + open() { # Open directories and files. if [[ -d $1/ ]]; then @@ -637,6 +653,7 @@ key() { # Mark files for operation. "${FFF_KEY_YANK:=y}"|\ "${FFF_KEY_MOVE:=m}"|\ + "${FFF_KEY_DUPLICATE:=Y}"|\ "${FFF_KEY_TRASH:=d}") mark "$scroll" "$1" ;;