mirror of
https://github.com/ivuorinen/dotfiles.git
synced 2026-01-26 11:14:08 +00:00
36 lines
801 B
Bash
Executable File
36 lines
801 B
Bash
Executable File
#!/usr/bin/env bash
|
|
#
|
|
# Backup a folder with a timestamp
|
|
# Usage: x-backup-folder folder_to_backup [filename]
|
|
# If filename is not provided, folder_to_backup will be used
|
|
# Example: x-backup-folder ~/Documents/MyFolder
|
|
#
|
|
# Copyright (c) 2022 Ismo Vuorinen. All Rights Reserved.
|
|
# Licensed under the MIT license.
|
|
|
|
DIRECTORY=$1
|
|
FILENAME=$2
|
|
|
|
if [ -z "${DIRECTORY}" ]; then
|
|
echo "DIRECTORY (first argument) is missing"
|
|
echo "Usage: $0 folder_to_backup"
|
|
exit
|
|
fi
|
|
|
|
if [ -z "${FILENAME}" ]; then
|
|
FILENAME=$DIRECTORY
|
|
fi
|
|
|
|
FILENAME=$(
|
|
${FILENAME} \
|
|
| tr '/' _ \
|
|
| iconv -t ascii//TRANSLIT \
|
|
| sed -r s/[^a-zA-Z0-9]+/_/g \
|
|
| sed -r s/^_+\|-+$//g
|
|
)
|
|
|
|
TIMESTAMP=$(date "+%Y%m%d_%H%M%S")
|
|
FILENAME_TIMESTAMP="${FILENAME}_${TIMESTAMP}"
|
|
|
|
tar cvzf "${FILENAME_TIMESTAMP}.tar.gz" "${DIRECTORY}/"
|