#!/usr/bin/env sh # A short "back-up" script used to archive directories neatly, optionally encrypt bakdir=$HOME/store/bak e="" case "$1" in "-g") e="--encrypt"; shift ;; "-s") e="--encrypt --symmetric --sign --cipher-algo AES256"; shift esac; for k in $*; do if [ -d "$k" ]; then strip=${k%/} [ "$(echo $strip | cut -c 1)" != "/" ] && strip=$PWD/$strip folder=${strip##*/} path=$(echo ${strip%/*} | sed "s#$HOME##") stamp="$(date +%y%m%d-%H%M%S)" name="$(echo $bakdir/$path/$folder-$stamp.tar.xz | sed 's#//#/#g')" echo Archiving and compressing $name ... mkdir -p $bakdir/$path cd $k; cd .. if [ -n "$e" ]; then echo Encrypting $name tar --xz --atime-preserve -p -cO $folder | gpg $e - > $name.gpg else tar --xz --atime-preserve -p -cf $name $folder fi; else echo Skipping $k, not a directory fi done