#!/usr/bin/env bash # # MDK (Move / Delete / Keep) ################################################################################ if [ "$#" -ge 2 ]; then cmd=$1 shift else echo "Usage: $0 [ ...]"; exit 0; fi move() { file="$1" read -rep "Where? " movedir mkdir -p "$movedir" mv "$file" "$movedir/" || exit 1 echo "[+] Moved to '$movedir'" } delete() { file="$1" mkdir -p .trash echo ".trash generated, delete it manually if you want" mv "$file" .trash/ || exit 1 echo "[+] Deleted" } keep() { echo "[+] Kept" } rename() { file="$1" read -rep "New name? " newfile mv "$file" "$newfile" || exit 1 echo "[+] Renamed to '$newfile'" } for file in "$@"; do key="" while [ -z "$key" ]; do echo -e "==============================\n[+] Opening '$file'..." $cmd "$file" echo -e "\n==============================" prompt="[M]ove / [D]elete / [K]eep / [R]ename / [A]gain (${file}) > " read -rn1 -p "$prompt" key while [[ ! "$key" =~ m|M|d|D|k|K|r|R|a|A ]]; do echo -e "\nWhat?" read -rn1 -p "$prompt" key done echo case "$key" in m|M) move "$file" ;; d|D) delete "$file" ;; k|K) keep ;; r|R) rename "$file" ;; a|A) key="" ;; esac done done