summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xbak28
1 files changed, 28 insertions, 0 deletions
diff --git a/bak b/bak
new file mode 100755
index 0000000..e98ed56
--- /dev/null
+++ b/bak
@@ -0,0 +1,28 @@
+#!/usr/bin/env sh
+
+# A short "back-up" script used to archive directories neatly, optionally encrypt
+
+bakdir=$HOME/bak
+
+e=""
+if [ "$1" == "-e" ]; then
+ e="true"
+ shift
+fi;
+
+for k in $*; do
+ 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
+done