В rsync есть --list-only
, которая предоставляет индекс удаленных файлов, включая метки времени:
$ rsync --list-only $REMOTE
drwx------ 160 2018/09/04 12:55:12 .
-rw-r--r-- 1,348 2018/09/04 12:52:33 .bash_profile
-rw-r--r-- 55 2018/09/04 12:52:33 .bashrc
...
Фильтрация в этом списке для выбора только подходящих дат, а затем подача этого в последующий аргумент rsync --files-from
(который может ссылаться на stdin с помощью --files-from=-
) должна выполнить эту работу.
Например, следующее будет rsync файлы с mtime между 2018-08-01 и 2018-08-07 на локальный компьютер (с соответствующими значениями $REMOTE
и $LOCAL_PATH
; примечание $5
в команде awk относится к пятому столбцу - т.е. имя файла - из вывода rsync)
$ rsync --list-only $REMOTE | awk '/2018-08-0[1-7]/ {print $5}' | rsync --files-from=- $REMOTE $LOCAL_PATH
Это не решает проблему использования спецификаторов find
's -mtime
-type, но дальнейший анализ строки даты (например, использование date
) может быть выполнен для ее расширения.