Размер директорий не стоит наших усилий

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!

Это совершенно бесполезный, ненужный в практическом применении, но забавный небольшой пост про директории в *nix системых. Пятница же.

На собеседованиях часто проскакивают скучные вопросы про айноды, всё-есть-файлы, на которые мало кто может вменяемо ответить. Но если копнуть чуть глубже, можно найти любопытные вещи.

Для понимания поста немного тезисов:

  • всё есть файл. директория — это тоже файл
  • в айноде хранятся мета-данные от файла, но имя файла там не хранится
  • имя файла хранится в данных директории
  • размер директории, тот самый который показывается в ls и по умолчанию 4Кб, зависит количества файлов в директории и длины их имен
  • очевидно, что чем больше файлов, тем больше размер директории

А теперь интересное: создаём директорию с миллионом файлов, проверяем размер директории, а потом вытираем все файлы и смотрим на размер директории.

$ mkdir niceDir && cd niceDir
# в зависимости от скорости носителя, следующая команда может занять 2-10 минут
$ for ((i=1;i<133700;i++)); do touch long_long_looong_man_sakeru_$i ; done
$ ls -lhd .
drwxr-xr-x 2 user user 8.1M Aug 2 13:37 .
$ find . -type f -delete
$ ls -l
total 0
$ ls -lhd .
drwxr-xr-x 2 user user 8.1M Aug  2 13:37 .

Как можно заметить, размер директории не поменялся, хотя казалось бы :)

Починить размер директории (без удаления) можно только с помощью fsck (и опции -D) в отмонтированном состоянии.

А вот когда я пошёл искать, почему это так, то оказалось, что 10 лет назад такое поведение уже обсуждали в lkml. И по мнению разработчиков исправление просто не стоит вложенных усилий.
Источник: https://habr.com/ru/post/462295/


Интересные статьи

Интересные статьи

Под конец года принято подводить итоги и кажется стоит вспомнить, что же было в этом непростом году хорошего. Например, я читал много отличных книг (что еще делать дома?). Вот немного...
Обычно в этом блоге появляются посты про наши конференции, но ничто айтишное нам не чуждо — и в эту пятницу, когда весь мир обсуждает Cyberpunk 2077, захотелось отвлечься. Выход этой и...
Это случилось еще в 1986 году, но могло произойти снова. Знаменитый портрет Урана, сделанный космическим аппаратом Voyager -2. На постоянно растущей карте исследователей Солнечной системы...
Если вы пытаетесь разобраться, какой из этих двух замечательных фреймворков выбрать, читайте мнение сторонника Vue по этому вопросу, которое я перевел и дополнил. Переведено при поддержке...
Те, кто собираются открывать интернет-магазин, предварительно начитавшись в интернете о важности уникального контента, о фильтрах, накладываемых поисковиками за копирование материалов с других ресурсо...