35 lines
929 B
Bash
Executable file
35 lines
929 B
Bash
Executable file
#!/bin/sh
|
|
|
|
# Folders in $HOME to backup
|
|
set -- Desktop Documents Pictures Videos Music Downloads .config .local/share
|
|
|
|
# backup function
|
|
backup() {
|
|
mkdir -p ./BACKUP
|
|
BACKDIR="$1"
|
|
BACKNAME="backup-${BACKDIR##*/}.zip"
|
|
/usr/bin/zip -r ./BACKUP/"$BACKNAME" "$BACKDIR"
|
|
printf "\n$BACKDIR has been backed up to ./BACKUP/$BACKNAME [Ok]" &&
|
|
read -r NULL
|
|
}
|
|
|
|
# Main
|
|
echo "\nBacking up: $@ ..."
|
|
for DIR in "$@" ; do
|
|
echo
|
|
|
|
# Print total size of the directory,
|
|
# ask for confirmation to back up
|
|
if [ -d "$HOME/$DIR" ] ; then
|
|
printf "$HOME/$DIR is %s, back it up? [N/y] " "$(du -hs "$HOME/$DIR" | cut -f 1)" &&
|
|
read -r BACKUP
|
|
# If positive, run backup function
|
|
[ "$BACKUP" = "y" ] && backup "$HOME/$DIR"
|
|
|
|
# If the firectory doesn't exist, notify the user
|
|
elif ! [ -d "$HOME/$DIR" ] ; then
|
|
printf "$HOME/$DIR doesn't exist! [Ok] " &&
|
|
read -r NULL
|
|
|
|
fi
|
|
done
|