#!/usr/bin/env bash set -e if [[ -n "$AUTOMV_DIR" ]]; then automvdir=$AUTOMV_DIR else automvdir=$(dirname "$0")/automv.d fi function extract { local file=$1 local prop=$2 grep "^${prop}=.*$" $file | cut -d '=' -f2 } function automv { local query=$1 local source=$2 local target=$3 echo "Moving files in $source that match '$query' to $target" find $source -type f \( -regex "${query}" ! -iname ".*" \) | xargs -I '{}' mv {} $target/ } echo "Executing automv functions from $automvdir" for file in $automvdir/*.conf do echo "found $file" if [[ -f $file ]]; then # Extract file configs query=$(extract $file "query") sourced=$(extract $file "source") target=$(extract $file "target") automv $query $sourced $target fi done