From abf18918d9e1ff2d663a40ea559b80d1b27c11d4 Mon Sep 17 00:00:00 2001 From: Steve Dogiakos Date: Tue, 15 Apr 2025 08:15:44 -0600 Subject: [PATCH] Adding move_recent.sh Script. This script moves the most recent file in the current directory to a specified destination directory, and keeps a log of the moved files by timestamp. Only moves files that were added to the directory after the last timestamp. --- move_recent.sh | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 move_recent.sh diff --git a/move_recent.sh b/move_recent.sh new file mode 100644 index 0000000..d21d18c --- /dev/null +++ b/move_recent.sh @@ -0,0 +1,35 @@ +#!/bin/bash + +# Configuration +SOURCE_DIR="/mnt/storage/Downloads" +DEST_DIR="/home/steve/new_books" +TIMESTAMP_FILE="/home/steve/.last_book_upload_time" + +# Resolve full path of this script so we can exclude it +SCRIPT_PATH="$(readlink -f "$0")" + +# Ensure destination exists +mkdir -p "$DEST_DIR" + +# If no timestamp file exists, create one with a default time +if [ ! -f "$TIMESTAMP_FILE" ]; then + echo "First run. Creating timestamp file." + date -d "1 day ago" +"%Y-%m-%d %H:%M:%S" > "$TIMESTAMP_FILE" +fi + +# Read the last run time +LAST_RUN=$(cat "$TIMESTAMP_FILE") + +echo "Syncing items modified since: $LAST_RUN" + +# Find modified items (top-level only), excluding this script +find "$SOURCE_DIR" -mindepth 1 -maxdepth 1 -newermt "$LAST_RUN" -print0 | +while IFS= read -r -d '' ITEM; do + ITEM_PATH="$(readlink -f "$ITEM")" + if [ "$ITEM_PATH" != "$SCRIPT_PATH" ]; then + rsync -rP "$ITEM" "$DEST_DIR/" + fi +done + +# Update timestamp after sync +date +"%Y-%m-%d %H:%M:%S" > "$TIMESTAMP_FILE"