40 lines
784 B
Bash
Executable File
40 lines
784 B
Bash
Executable File
#!/bin/bash
|
|
|
|
readonly USAGE="
|
|
USAGE:
|
|
$(basename "$0") [FILE]"
|
|
|
|
function help_message() {
|
|
echo "$USAGE"
|
|
}
|
|
|
|
# check if there is any parameter
|
|
if [ "$#" -ne 1 ]; then
|
|
help_message
|
|
exit 0
|
|
fi
|
|
|
|
# check if the parameter is valid
|
|
if ! test -f "$1"; then
|
|
echo "file $1 does not exist."
|
|
exit 0
|
|
fi
|
|
|
|
# variables
|
|
readonly FILE_DIR="$(cd "$(dirname "$1")" && pwd)"
|
|
readonly FILE="$(basename "$1")"
|
|
|
|
OLD_DATE="$(date -r "$1" "+%Y-%m-%d_%H:%M:%S")"
|
|
echo "${FILE}.${OLD_DATE}"
|
|
cp "${FILE_DIR}/${FILE}" "${FILE_DIR}/${FILE}.${OLD_DATE}"
|
|
|
|
while true; do
|
|
sleep 5
|
|
DATE="$(date -r "$1" "+%Y-%m-%d_%H:%M:%S")"
|
|
if [ "$DATE" != "$OLD_DATE" ]; then
|
|
echo "${FILE}.${DATE}"
|
|
cp "${FILE_DIR}/${FILE}" "${FILE_DIR}/${FILE}.${DATE}"
|
|
OLD_DATE=$DATE
|
|
fi
|
|
done
|