adds mover
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
#!/bin/bash
|
||||
# This script continuously monitors a source directory and moves any files matching the specified extension
|
||||
# to a destination directory. It checks for new files every interval (default 10 seconds).
|
||||
# Usage: ./script.sh --source-dir|-s <source_dir> --dest-dir|-d <dest_dir> --extension|-e <extension> [--interval|-i <seconds>]
|
||||
# Or set MV_SOURCE_DIR, MV_DEST_DIR, MV_EXTENSION and MV_INTERVAL environment variables before running
|
||||
# Example: ./script.sh -s /home/user/downloads -d /home/user/documents -e "*.pdf" -i 30
|
||||
|
||||
while [[ $# -gt 0 ]]; do
|
||||
case "$1" in
|
||||
--source-dir|-s) MV_SOURCE_DIR="$2"; shift 2 ;;
|
||||
--dest-dir|-d) MV_DEST_DIR="$2"; shift 2 ;;
|
||||
--extension|-e) MV_EXTENSION="$2"; shift 2 ;;
|
||||
--interval|-i) MV_INTERVAL="$2"; shift 2 ;;
|
||||
*) echo "Unknown parameter: $1"; exit 1 ;;
|
||||
esac
|
||||
done
|
||||
|
||||
MV_SOURCE_DIR=${MV_SOURCE_DIR:-$MV_SOURCE_DIR}
|
||||
MV_DEST_DIR=${MV_DEST_DIR:-$MV_DEST_DIR}
|
||||
MV_EXTENSION=${MV_EXTENSION:-$MV_EXTENSION}
|
||||
MV_INTERVAL=${MV_INTERVAL:-10}
|
||||
|
||||
if [ -z "$MV_SOURCE_DIR" ] || [ -z "$MV_DEST_DIR" ] || [ -z "$MV_EXTENSION" ]; then
|
||||
echo "Error: MV_SOURCE_DIR, MV_DEST_DIR and MV_EXTENSION must be provided via environment variables or arguments"
|
||||
echo "Usage: $0 --source-dir|-s <source_dir> --dest-dir|-d <dest_dir> --extension|-e <extension> [--interval|-i <seconds>]"
|
||||
echo "Or set MV_SOURCE_DIR, MV_DEST_DIR, MV_EXTENSION and MV_INTERVAL environment variables"
|
||||
echo "Example: $0 --source-dir /home/user/downloads --dest-dir /home/user/documents --extension *.pdf --interval 30"
|
||||
echo "Or: export MV_SOURCE_DIR=/home/user/downloads MV_DEST_DIR=/home/user/documents MV_EXTENSION=*.pdf MV_INTERVAL=30"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -d "$MV_DEST_DIR" ]; then
|
||||
echo "Error: Destination directory $MV_DEST_DIR does not exist"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
shopt -s nullglob # This prevents errors when no matches are found
|
||||
while true; do
|
||||
for file in "$MV_SOURCE_DIR"/$MV_EXTENSION; do
|
||||
if [ -f "$file" ]; then
|
||||
echo "Moving: $file"
|
||||
mv "$file" "$MV_DEST_DIR"
|
||||
fi
|
||||
done
|
||||
sleep $MV_INTERVAL
|
||||
done
|
||||
Reference in New Issue
Block a user