Reubicados los archivos en carpetas

This commit is contained in:
2023-10-28 13:24:05 +02:00
parent e8efb7c4d0
commit 7c7bca5667
45 changed files with 93 additions and 80 deletions
+62
View File
@@ -0,0 +1,62 @@
#!/bin/bash
# Comprueba los parametros
if [ "$#" -ne 1 ]; then
printf "Uso: %s FILE_NAME\n" "$(basename "$0")"
exit 0
else
# Comprueba si existe el fichero
if ! test -f "$1"; then
printf "File %s does not exist.\n" "$1"
exit 0
fi
fi
# Variables
FILE_DIR="$(cd "$(dirname "$1")" && pwd)"
readonly FILE_DIR
FILE_NAME="$(basename "$1")"
readonly FILE_NAME
SUFFIX=".tar.gz"
readonly SUFFIX
# Crea una copia del fichero y le añade al nombre la fecha
OLD_DATE="$(date -r "$1" "+%Y-%m-%d_%H:%M:%S")"
cp "${FILE_DIR}/${FILE_NAME}" "${FILE_DIR}/${FILE_NAME}.${OLD_DATE}"
# Añade la copia del fichero al fichero .tar.gz o crea uno nuevo
if ! test -f "${FILE_DIR}/${FILE_NAME}${SUFFIX}"; then
tar -C "${FILE_DIR}" -caf "${FILE_DIR}/${FILE_NAME}${SUFFIX}" "${FILE_NAME}.${OLD_DATE}"
printf "File %s${SUFFIX} created.\n" "${FILE_NAME}"
else
gunzip "${FILE_DIR}/${FILE_NAME}${SUFFIX}"
tar -C "${FILE_DIR}" -uf "${FILE_DIR}/${FILE_NAME}.tar" "${FILE_NAME}.${OLD_DATE}"
gzip "${FILE_DIR}/${FILE_NAME}.tar"
fi
printf "%s\n" "${FILE_NAME}.${OLD_DATE} added"
rm "${FILE_DIR}/${FILE_NAME}.${OLD_DATE}"
# Comprueba cada cierto tiempo si el fichero se ha modificado
while true; do
sleep 60
# Obten la fecha del fichero
DATE="$(date -r "$1" "+%Y-%m-%d_%H:%M:%S")"
# Si la fecha del fichero ha cambiado respecto a la que tenia almacenada es porque es una versión
# nueva del fichero y se procede a hacer una copia en el fichero .tar.gz
if [ "$DATE" != "$OLD_DATE" ]; then
# Crea una copia del fichero y le añade al nombre la fecha
cp "${FILE_DIR}/${FILE_NAME}" "${FILE_DIR}/${FILE_NAME}.${DATE}"
# Añade la copia del fichero al fichero .tar.gz
gunzip "${FILE_DIR}/${FILE_NAME}${SUFFIX}"
tar -C "${FILE_DIR}" -uf "${FILE_DIR}/${FILE_NAME}.tar" "${FILE_NAME}.${DATE}"
gzip "${FILE_DIR}/${FILE_NAME}.tar"
# Elimina la copia del fichero
rm "${FILE_DIR}/${FILE_NAME}.${DATE}"
# Actualiza la fecha del fichero a la de la última copia
OLD_DATE=$DATE
# Informa por pantalla
printf "%s\n" "${FILE_NAME}.${DATE} added"
fi
done