это один из способов сделать это:
src_dir=/tmp/in
target_dir=/tmp/out
year=2014
find ${src_dir} -maxdepth 1 -type f | while read f; do
changed_in_desired_year=$(stat "$f" | egrep "Change:[ ]*${year}-")
if [ -z "${changed_in_desired_year}" ]; then
continue
fi
mv "$f" ${target_dir}
done
Интересным моментом является использование stat
для получения статуса измененного / измененного / доступа к файлу .
Вы можете попробовать Chironfs, реплицирующую файловую систему FUSE, (реализованную в пользовательском пространстве; который доступен изhttps://github.com/tweksteen/chironfs).
После установки вы можете выполнить, например,. эти команды:
mkdir a a1 a2 a3
chironfs a1=a2=a3 a
С этого момента любой файл, записанный в a
, будет мгновенно реплицирован в a1
, a2
и a3
.
Каждый из этих каталогов может находиться на другом устройстве, их просто нужно смонтировать. Это полностью прозрачно для программ.