TGViewer
ServerAdmin.ru ServerAdmin.ru @srv_admin · 32.6K subscribers
Post #1967 7.57K
​​Утилита find и время изменения файлов

Когда пишу скрипты с использованием find, регулярно натыкаюсь на одну и ту же неточность в своём понимании некоторых популярных параметров. Конкретно вот этих:

◽ mtime – время последнего изменения файла
◽ ctime – время создания файла
◽ atime – время последнего доступа к файлу

Когда вводишь команду:
# find /mnt/backup -maxdepth 1 -type d -ctime +1
ожидаешь найти все каталоги, созданные более суток назад, чтобы удалить их и освободить место на диске. Я специально взял именно сутки, так как тут сразу наглядно видно разночтение в ожидании и реальности. Find в таком виде покажет каталоги, созданные более трех суток назад.

Вот наглядный пример:
# date +"%Y-%m-%d %H-%M"
2022-06-06 19-45

# ls -lh
drwxr-xr-x 3 root root 4.0K Jun 2 17:09 2022-06-02
drwxr-xr-x 3 root root 4.0K Jun 3 03:03 2022-06-03
drwxr-xr-x 3 root root 4.0K Jun 4 03:03 2022-06-04
drwxr-xr-x 3 root root 4.0K Jun 5 03:03 2022-06-05
drwxr-xr-x 3 root root 4.0K Jun 6 03:03 2022-06-06

# find /mnt/backup -maxdepth 1 -type d -ctime +1
/mnt/backup/2022-06-04
/mnt/backup/2022-06-03
/mnt/backup/2022-06-02

Директория 2022-06-05 старше суток, но в вывод find не попала. По факту параметр +1 означает всё, что старше двух суток. А для поиска старше суток, необходимо использовать +0.

Это связано с тем, что find определяет, как много 24-часовых периодов назад директория была создана. Любая дробная часть игнорируется, поэтому для соответствия -ctime +1 директория должна быть создана по крайней мере два дня назад.

Когда используешь большие интервалы, не обращаешь на такую мелочь внимания. А когда у тебя где-то на промежуточном хранилище не хватает свободного места и тебе надо точно рассчитать время хранения, такие нюансы становятся критичны.

Я с периодичностью раз в год-два разбираюсь с этим нюансом. Встречается редко, но когда наткнёшься, начинаешь вспоминать, как там find интерпретирует эти интервалы. Решил записать, может больше не буду забывать, но это вряд ли 🤷🏻‍♂️.

#bash #find #terminal
  • 👍 87
  • 👎 2
More from @srv_admin
  1. Sep 25, 2026▶️ Очередная подборка авторских IT роликов, которые я лично посмотрел и посчитал интересны…
  2. Sep 25, 2026Девопсы, сисадмины, архитекторы, техлиды (и вообще все, кто принимает технические или бизн…
  3. Sep 25, 2026Подписчик поделился полезным проектом - Webtop. Это Linux дистрибутив с графикой, упакован…
  4. Sep 24, 2026Траблшутинг - мастхэв компетенция для инженера В Rebrain траблшутинги проводят уже несколь…
  5. Sep 23, 2026Очередная подборка статей авторов, которые согласились в ней участвовать. Кто не понимает,…
  6. Sep 23, 2026Контейнеры в одном инструменте, виртуалки — в другом, частное облако — вообще отдельная ис…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →