/
hubbitus
/
shell.scripts
Обзор
Документация
Войти
/
hubbitus
/
shell.scripts
Код
Запросы
0
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
bak
52 строки
1 KB
Pavel Alexeev
bak - make user agnostic
24 апр 2018, 16:23
24 апр 2018, 16:23
3cbfb9f
Код
Авторство
О чём код?
#!/bin/bash MAIN_BAK_DIR=$HOME/_BAK DATE_FORMAT='%Y-%m-%d' . ~/bin/SHARED/getopt_long.bash GETOPT_STRING="c:" LONG_GETOPT_STRING="cmd:" long_getopt_parse "$@" #echo OPTc=$OPTc #echo OPTcmd=$OPTcmd #$1 - ЧТО бакапим #$2 - ЧЕМ бакапим, какой коммандой (например cp, mv) if [ ! "$1" ]; then echo 'Нужен аргумент-файл!'; exit 1 fi if [ "$OPTcmd" ]; then cmd="$OPTcmd" else if [ "$OPTc" ]; then cmd="$OPTc" else cmd='cp -r --backup=numbered' fi fi ############################################# target="$1" #Корректируем путь, если он не абсолютный if [[ '/' != "${target:0:1}" ]]; then target="$(pwd)/$1" # dir=$(dirname "$(pwd)/$1") fi dir=$(dirname "$target") #echo "\$target="$target #echo "\$dir="$dir #Создается иерархия #echo mkdir -p "${MAIN_BAK_DIR}/$(date +$DATE_FORMAT)${dir}" mkdir -p "${MAIN_BAK_DIR}/$(date +$DATE_FORMAT)${dir}" if [ $( id -g ) -eq 0 ]; then #Put it to users chown :users "${MAIN_BAK_DIR}/$(date +$DATE_FORMAT)" fi #echo $cmd "$@" "${MAIN_BAK_DIR}/$(date +$DATE_FORMAT)${dir}" $cmd "$@" "${MAIN_BAK_DIR}/$(date +$DATE_FORMAT)${dir}"