Використання find -mmin для пошуку файлів з часом модифікації в майбутньому


9

Я можу використовувати

find . -mmin -5

щоб знайти файли, змінені за останні 5 хвилин. Однак, якщо я спробую в майбутньому знайти файли з часом модифікації, надавши відмовлене число, findвідмовляється це робити:

find . -mmin --1

Чи є спосіб дати майбутній час модифікації стандартному Linux find?

Відповіді:


9

Щоб знайти файли, змінені принаймні за 5 днів, скористайтеся:

find . -newermt "5 days"

Синтаксис специфікації часу відповідає значенню для date -d. Для man findотримання -newerXYдодаткової інформації див.

Не можна використовувати, наприклад, -mminдля цього. Про це повідомлялося як про помилку знаходження GNU , і було вирішено шляхом впровадження -newerXYу findutils 4.3.3 (~ 2007), як я показав вище.


Мабуть, не GNU знайшов, що використовувався, а BusyBox.

Тоді ви зможете touch -dв майбутньому створити тимчасовий файл із датою, а потім скористатися -newerперемикачем, findнаприклад:

touch -d "+5 days" tmpfile
find . -newer tmpfile

BusyBox touchне підтримує цей формат дати, але принцип той самий і його findпідтримує -newer. Створення довідкового файлу з правильною датою залишається читачем як вправа (завжди зручно писати).


Дякую. Моя проблема полягає в тому, що моя знахідка - це стара вбудована BusyBox find, а не бінутальна знахідка. Мабуть, стандартний спосіб Linux тут не працює. :(
Muxecoid

@Muxecoid: я оновив свою відповідь деякими зауваженнями BusyBox.
Даніель Андерссон

Це просто врятувало мені проблеми на новій машині, де я зробив щось десять годин у майбутньому випадково (зсув часового поясу застосовано до вже зрушеного апаратного годинника) і після встановлення годинника configureсценарій скаржився на те, що буде в майбутньому (автор годину з половиною або близько того): find . -newermt '1 hour' | xargs touch -d '-9 hours'і я можу продовжувати. :-)
Кріс Морган
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.