1
0
Fork 0
mirror of https://github.com/notwa/rc synced 2024-11-13 20:29:02 -08:00
rc/sh/baks

36 lines
1.1 KiB
Text
Raw Normal View History

2021-07-29 00:37:35 -07:00
#!/usr/bin/env sh
2021-07-31 16:15:27 -07:00
# backup, timestamped
# YES_ZSH YES_BASH YES_DASH YES_ASH
2021-07-29 00:37:35 -07:00
baks() { ### @-
2021-08-01 07:58:21 -07:00
### backup files by copying each and appending *the current* date-time,
### irrespective of when the files were modified or created.
###
### ```
### $ touch -d '2001-12-25 16:30:00' butts
### $ baks butts
### $ baks butts
### $ ls -l
### total 0
### -rw-r--r-- 1 notwa None 0 Dec 25 2001 butts
### -rw-r--r-- 1 notwa None 0 Dec 25 2001 butts.21-08-01_14-54-07.bak
### -rw-r--r-- 1 notwa None 0 Dec 25 2001 butts.21-08-01_14-54-09.bak
### ```
local ret=0 fp=
2021-07-29 00:37:35 -07:00
for fp; do
local now="$(date -u '+%y-%m-%d_%H-%M-%S')"
local bak="$fp.$now.bak"
if [ -s "$bak" ]; then
#note "how in the hell?" "$bak" "already exists"
printf "%s %s %s\n" "how in the hell?" "$bak" "already exists"
2021-07-29 00:37:35 -07:00
ret=1
fi
cp -p "$fp" "$bak" || ret=1
done
return $ret
}
[ -n "${preload+-}" ] || . ~/sh/preload || exit 2
eval ${preload:-preload} note
[ -n "${preload+-}" ] || baks "$@"