#!/bin/bash function helpexit() { echo Archive the subfolders of the current directory echo " -z Compress. If not passed, will ask after tar archive" echo " -n No compression. Exit after tar archive" exit } function fsize() { echo -en "\e[2K\r" ls -sh "$1" | xargs echo -n } [[ "$1" = "-h" ]] && helpexit echo Archive the following folders: find . -mindepth 1 -maxdepth 1 -type d | tr \\n " " echo '' echo ' to quit' read foo find . -mindepth 1 -maxdepth 1 -type d -print0 | while read -r -d "" d; do echo -n $d tar cvf "$d.tar" $d > "$d.tar.txt" & PID=$! while kill -0 "$PID" &>/dev/null; do for i in {1..5}; do sleep $i; kill -0 "$PID" &>/dev/null || break 2 done fsize "$d.tar" done fsize "$d.tar" echo '' done [[ "$1" = "-n" ]] && { exit } [[ "$1" = "-z" ]] || { echo 'Proceed to compress? to quit' read foo } find . -mindepth 1 -maxdepth 1 -type d -print0 | while read -r -d "" d; do ls -sh "$d.tar" gzip "$d.tar" PID=$! while kill -0 "$PID" >/dev/null 2>&1; do for i in {1..5}; do sleep $i; kill -0 "$PID" &>/dev/null || break 2 done fsize "$d.tar.gz" done fsize "$d.tar.gz" echo '' done