Найдите не удаляющие файлы в папках через сценарий удара

Я являюсь очень новым в сценариях удара, и я действительно застреваю на методе находки из Ubuntu. Я хочу искать в папке /opt/ чтобы все папки видели, старше ли они, чем определенная дата. Если они старше, файлы в этой папке должны быть удалены (и сама папка слишком на самом деле). Если дата является все еще слишком новой, файлы не должны быть затронуты.

Что я имею в коде:

find $BACKUP_DIR -maxdepth 1 -mtime +$DAYS_TO_KEEP -name "*$mystring" -exec rm -rf '{}' ';'

Переменные содержат эти значения:

BACKUP_DIR=/opt/
TESTDIR=2014-11-25-daily_testmachine
mystring=-daily_testmachine

Если переменная $DAYS_TO_KEEP 2, дата 25.11.2014, и имя папки 2014-11-20-daily_testmachine папка и ее содержание должны быть отброшены.

Что я делаю неправильно, который находка не удаляет/находит эти файлы и папки для удаления? Я, может казаться, не нахожу ошибку.

Примечание: если я выполню команду с точным именем строки папки в нем, то папка будет удалена. Таким образом, у меня есть что-то не так в моем формате или именовании.

find $BACKUP_DIR -maxdepth 1 -name "2014-11-20-daily_testmachine" -exec rm -rf '{}' ';'

Для создания вещей более ясными, я сделал снимок экрана для показа установки:

2
задан 25 November 2014 в 08:30

1 ответ

Моя ошибка была логической ошибкой с -mtime. Я думал, что мой сценарий проверял имена, но -mtime проверки на дату, когда файл был создан. Так мой заключительный код:

DAYS_TO_KEEP=2
find $BACKUP_DIR -maxdepth 1 -mtime +"$DAYS_TO_KEEP" -exec rm -rf {} \;

я просто должен был сделать sudo touch -d "3 days ago" /filepath/folderToRemove для создания -mname, находят, что папка и удостоверяется, что файл был достаточно взрослым, чтобы быть удаленным. Таким образом, этот заключительный код удаляет все папки, которые являются более старыми, чем моя переменная $DAYS_TO_KEEP

1
ответ дан 20 November 2019 в 02:09

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

Похожие вопросы: