Поиск файлов старше x дней в системе с урезанным занятым ящиком
9
Мне нужно найти и удалить файлы старше 1 недели в блоке разработки. На этом устройстве доступно ограниченное количество утилит. -mtimefindПредикат не доступен. Как в этом случае проверить все файлы старше x дней?
Непонятно, что вы имеете в виду под « mtimeнедоступно». Это не утилита, имя которой я узнаю.
Кусалананда
/ path / to / my / folder $ find -type f -mtime +7 удалить найти: не распознано: -mtime
Рави
поделитесь дистрибутивом Linux, который вы используете.
Шива
3
Похоже, он занят без коробки FEATURE_FIND_MTIME. Является ли FEATURE_FIND_NEWERвключен? Работает ли find -newer? Ваша testутилита или [встроенная shподдержка -nt?
Стефан Шазелас
1
Вы можете обойти это, если вы можете использовать эти touch -d/ date +%sи[ file -nt other-file ]
Стефан Шазелас
Ответы:
11
-mtimeявляется стандартным предикатом find(вопреки -delete), но похоже, что у вас есть урезанная версия busybox, где FEATURE_FIND_MTIMEфункция была отключена во время сборки.
Если вы можете перестроить busybox с его включением, вы должны сделать:
find . -mtime +6 -type f -exec rm -f {} +
Или, если FEATURE_FIND_DELETEтакже включен:
find . -mtime +6 -type f -delete
Если нет, другие параметры могут быть использованы find -newer(при условии, что FEATURE_FIND_NEWERон включен) для файла, для которого задано время изменения в одну неделю.
Да, busybox был более легкой версией здесь. После перестройки find . -mtime +6 -type f -exec rm {} \;работал на меня
Рави
2
От man find:
- формат n
Последний раз к файлу обращались n * 24 часа назад. Когда команда find определяет, сколько 24-часовых периодов назад к файлу последний раз обращались, любая дробная часть игнорируется, поэтому для соответствия -atime +1 файл должен был быть получен как минимум два дня назад.
-время n
Статус файла был последний раз изменен n * 24 часа назад. См. Комментарии для -atime, чтобы понять, как округление влияет на интерпретацию времени изменения состояния файла.
В зависимости от вариантов использования файлов, которые вы хотите удалить, это ваши единственные другие варианты find. Почему mtimeнет в наличии? Какую файловую систему вы используете? Вы исследовали какие-либо другие варианты?
mtime
недоступно». Это не утилита, имя которой я узнаю.FEATURE_FIND_MTIME
. Является лиFEATURE_FIND_NEWER
включен? Работает лиfind -newer
? Вашаtest
утилита или[
встроеннаяsh
поддержка-nt
?touch -d
/date +%s
и[ file -nt other-file ]
Ответы:
-mtime
является стандартным предикатомfind
(вопреки-delete
), но похоже, что у вас есть урезанная версияbusybox
, гдеFEATURE_FIND_MTIME
функция была отключена во время сборки.Если вы можете перестроить busybox с его включением, вы должны сделать:
Или, если
FEATURE_FIND_DELETE
также включен:Если нет, другие параметры могут быть использованы
find -newer
(при условии, чтоFEATURE_FIND_NEWER
он включен) для файла, для которого задано время изменения в одну неделю.Или , если
-newer
нет в наличии , ноsh
«S[
поддерживает-nt
:источник
find . -mtime +6 -type f -exec rm {} \;
работал на меняОт
man find
:В зависимости от вариантов использования файлов, которые вы хотите удалить, это ваши единственные другие варианты
find
. Почемуmtime
нет в наличии? Какую файловую систему вы используете? Вы исследовали какие-либо другие варианты?источник