#!/usr/bin/env sh # A short "back-up" script used to archive directories neatly, optionally encrypt bakdir=$HOME/store/bak e="" if [ "$1" == "-e" ]; then e="true" shift fi; 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 .. tar --xz --atime-preserve -p -cf $name $folder if [ -n "$e" ]; then echo Encrypting $name gpg --encrypt $name fi else echo Skipping $k, not a directory fi done