Как мне найти файлы, которые были созданы / изменены / доступны до перезагрузки?

В удаленной системе (в которой я не являюсь администратором) я настроил альтернативный TMPDIR в моем `.profile (поскольку в системе по умолчанию очень ограниченное пространство) ).

Этот альтернативный TMPDIR , конечно, не очищается при перезагрузке. Вот почему я хочу периодически (или при входе в систему) очищать каталог. Тем не менее, я могу входить в систему несколько раз с долго выполняющимися скриптами, когда я не вошел в систему, поэтому на самом деле rm всего содержимого не вариант.

Есть ли способ (желательно в bash , но доступны обычные инструменты) найти файлы в определенном каталоге, которые старше, чем последняя перезагрузка, чтобы очистить мой TMPDIR ?

0
19.11.2015, 00:19
1 ответ

Этот простой лайнер -может помочь удалить все файлы и каталоги в TMPDIR, измененные до последней перезагрузки:

$ find $TMPDIR -mindepth 1 -depth -not -newermt "$(uptime -s)" -delete

Ваш компьютер должен поддерживать uptime -sи опцию find-newerXY, чтобы это работало.

Здесь -newermtявляется специальной формой -newerXYи ищет файлы и каталоги (m ), измененные после ссылки (t )imestamp, которая в данном случае является выходом uptime -s.

Подробную информацию о -newerXYсм. в руководствеfind.

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

-depthзаботится об обработке содержимого каталога перед самим каталогом (важно для рекурсивного удаления ).

-mindepth 1обеспечивает сохранение самого каталога TMPDIR.

Если вы хотите только перечислить соответствующие файлы (вместо их удаления ), просто удалите -delete.

Если вы хотите удалить список и , просто добавьте -printf "%p\n" -delete.

1
19.08.2021, 23:22

Теги

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