Операция поиска и mtime, за исключением папки mtime

Привет, у меня есть скрипт оболочки резервного копирования, выполняемый через crontab, но у меня довольно большая проблема. Это особая строка, которая сканирует мой диск:

find $E -mtime -1 -exec cp -r --parents {} $B/$T \;

где E и B - переменные, содержащие пути к каталогам, а T - текущую дату. Он проверяет все файлы, которые были отредактированы в течение последнего дня, и копирует их в новый каталог. Структура папок сохраняется без изменений благодаря --parents аргумент. Проблема, с которой я столкнулся, заключается в том, что, по-видимому, это также проверяет mtime всех папок, а это означает, что, если бы я изменил один файл в очень большой папке, вся папка была бы скопирована во время резервного копирования, занимая ненужный объем диска. пространство. Есть ли способ удалить папку mtime из уравнения? Я думаю, что возможно было бы исключить сами папки (не их содержимое) из поиска, пока --parents Аргумент все еще вступает в силу.

1 ответ

Решение

Я предполагаю, что вы хотите применить это только к обычным файлам -

find $E -type f -mtime -1 -exec cp -r --parents {} $B/$T \;

иначе

find $E ! -type d -mtime -1 -exec cp -r --parents {} $B/$T \;

чтобы получить и другие типы файлов, пропуская оценку возраста по каталогам.

Другие вопросы по тегам