Поиск и копирование файлов старше определённой даты

Задача: скопировать (перенести) на backup-сервер файлы только за текущий (2017) год.

Решение:  find /foo/bar/baz/ -newermt «2017-01-01 00:00» -print | rsync -avz —files-from=- / username@192.168.0.1:/

Что происходит:

  1. Ищем find в каталоге /foo/bar/baz/ все файлы
  2. модифицированные newermt
  3. позднее newer
  4. указанной даты и времени newermt «2017-01-01 00:00» (0 часов 0 минут 1 января 2017)
  5. печатаем -print полные пути к найденным файлам в стандартный вывод
  6. c помощью конвейера | перенаправляем выходной поток (список найденных файлов) команды find на входной поток следующей в конвейере команде
  7. rsync — программа для синхронизации файлов, вызывается с ключами -avz
  8. ключ —files-from=- задаёт список файлов для передачи, который будет прочитан из стандартного ввода, т.к. указан (список файлов, найденных на предыдущих шагах)