Files
q-tools/files/archive_subfolders
2016-02-15 22:55:47 +02:00

60 lines
1.2 KiB
Bash
Executable File

#!/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 | sort | tr \\n " "
echo ''
echo '<ctrl-c> to quit'
read foo
find . -mindepth 1 -maxdepth 1 -type d -print0 | sort | 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? <ctrl-c> to quit'
read foo
}
find . -mindepth 1 -maxdepth 1 -type d -print0 | sort | 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