/etc/fstab
не используется для определения местоположения корневой фс. В меню личинки нажать e
отредактировать запись и изменить корень = параметр командной строки ядра для указания на снимок. Это загрузит от снимка только это время.
Ну, простой ответ, я предполагаю, что Ваша реализация находки следует стандарту POSIX/SuS, в котором говорится, что это должно вести себя этот путь. Заключение в кавычки из Станд. SUSv4/IEEE 1003.1, 2013 Выпуск, "находит":
- mtime n
Основное устройство должно оценить как верное, если время изменения файла вычло
со времени инициализации, разделенного на 86 400 (с любым отброшенным остатком), n.
(В другом месте в том документе это объясняет это n
может на самом деле быть +n
, и значение этого как "больше, чем").
Относительно того, почему в стандарте говорится, он должен вести себя тот путь — хорошо, я предполагал бы долго в прошлом, программист был ленив или не думал об этом и просто написал код C (current_time - file_time) / 86400
. C целочисленная арифметика отбрасывает остаток. Сценарии запустились в зависимости от того поведения, и таким образом оно было стандартизировано.
spec'd поведение также было бы портативным к гипотетической системе, которая только сохранила дату модификации (не время). Я не знаю, существовала ли такая система.
Таким образом, если файл составляет 1 день, 23 часа, 59 минут и 59 старых секунд, находят, что-mtime +1 игнорирует все это и просто рассматривает его как, он - 1 день, 0 часов, 0 минут и 0 старых секунд?
Да. Как man find
говорит, "любая дробная часть проигнорирована". При делении "1 дня, 23 часов, 59 минут и 59 секунд" в течение "24 часов", можно добраться 1.9999, но.9999 частей затем разделяются, и внезапно файл составляет только 1 старый день.
Используйте-mmin, - амин, и т.д. для получения точных результатов
-?min
аргументы работают точно как -?time
аргументы кроме с минутами вместо дней. Они не “точны” также. Примечание
– Gilles 'SO- stop being evil'
02.05.2015, 23:53
Аргумент -mtime
интерпретируется как количество целых дней в возрасте файла. -mtime +n
средства, строго больше, чем, -mtime -n
средства строго меньше, чем.
Обратите внимание, что с Bash, можно сделать более интуитивное:
$ find . -mmin +$((60*24))
$ find . -mmin -$((60*24))
найти файлы более старыми и более новыми, чем 24 часа, соответственно.
(Это также легче, чем ввод в дробном аргументе -mtime
поскольку, когда Вы хотите разрешение в течение многих часов или минут.)
$ find . -type f -mmin -$((60*24)) -exec ls -halt {} +
– Evgeni Sergeev
04.02.2014, 03:45
$(())
простой синтаксис арифметики оболочки, это не характерно для Bash, cf. pubs.opengroup.org/onlinepubs/009695399/utilities / …
– Josip Rodin
22.07.2015, 23:28
This chapter describes the syntax of that command language as it is used by the sh utility and [...]
. Так как Bash является "расширенным" SH, он поддерживает этот синтаксис, но некоторые другие оболочки не делают, например, csh/tcsh.
– t0r0X
29.01.2016, 19:18
/bin/sh
.
– Josip Rodin
29.01.2016, 23:49
Дробные 24-часовые периоды усечены! Это означает, что "найти -mtime +1" говорит о совпадении файлов, измененных два или более дня назад.
find . -mtime +0 # find files modified greater than 24 hours ago
find . -mtime 0 # find files modified between now and 1 day ago
# (i.e., in the past 24 hours only)
find . -mtime -1 # find files modified less than 1 day ago (SAME AS -mtime 0)
find . -mtime 1 # find files modified between 24 and 48 hours ago
find . -mtime +1 # find files modified more than 48 hours ago
Следующее может работать только в GNU?
find . -mmin +5 -mmin -10 # find files modified between
# 6 and 9 minutes ago
find / -mmin -10 # modified less than 10 minutes ago
-mtime N
означает файлы, возраст которых A в днях удовлетворяет N ≤ A < N+1. Другими словами, -mtime N
выбирает файлы, которые были в последний раз изменены между N и N+1 днями ранее.
-mtime -N
означает файлы, возраст которых A удовлетворяет A < N, т.е. файлы, изменённые менее N дней назад. Менее интуитивно понятно, что -mtime +N
означает файлы, возраст которых A удовлетворяет N+1 ≤ A, т.е. файлы, измененные не менее N+1 дня назад.
Например, -mtime 1
выбирает файлы, которые были изменены 1-2 дня назад. -mtime +1
выбирает файлы, которые были изменены не менее 2 дней назад. Для получения файлов, изменённых не менее 1 дня назад, используйте -mtime +0
.
Описание "был последний раз модифицирован n*24 часа назад" - это всего лишь приближение, и не очень понятное.
Если эти правила вам трудно запомнить, используйте вместо них справочный файл.
touch -d '1 day ago' cutoff
find . -newer cutoff
(Синтаксис "1 день назад" требует GNU touch
.)
Если вам нужны файлы с возрастом ровно 48 часов, а не 2 дня, вам следует добавить - daystart
в свой ] команда find
. Это вам поможет.
find . type -f -daystart -mtime +1