Então, porque eu preciso de alguma flexibilidade, de qualquer forma, eu criei uma versão de script baseada na ideia da AFH.
#!/bin/sh
# configure: source path
source_path="/src/path/backup";
# configure: destination path
destination_path="/dest/path/backup";
# find all files in source_path not modified in the last 60 minutes
find $source_path -mmin +60 -type f | while read -r file; do
# this is the absolute source path (/src/path/backup/path/to/file)
absolute_source_path="${file%/*}";
# get the relative source path (/path/to/file)
relative_source_path=${absolute_source_path#$source_path}
# get the last modification date of the file (yyyymmdd)
file_save_date="$(date -d@$(stat "$file" -c %Y) +'%Y%m%d')";
# IMPORTANT create sub directory at the destination if required
mkdir --parents "$destination_path/$file_save_date$relative_source_path/";
# move the file to new destination (/dest/path/backup/yyyymmdd/path/to/file)
mv "$file" "$destination_path/$file_save_date$relative_source_path/" > /dev/null 2>&1;
done
# delete empty folders if the the folder is not changes in the last 5 minutes
find $source_path/* -mmin +5 -type d -empty -delete > /dev/null 2>&1;