Как длина имени файла влияет на оставшееся место для хранения на диске?
-
04-10-2019 - |
Вопрос
Как длина имени файла влияет на оставшееся место для хранения на диске?
Я понимаю, что это зависит от файловой системы. В частности, я думаю о серии файловых систем EXT. Я не полностью понимаю, как inodes влияет на дисковое пространство и как сохраняется сам файл файла. Трудно получить релевантные результаты поиска по результатам этого вопроса. Вот почему я спрашиваю здесь. На Linux максимальная длина имени файла обычно составляет 255 или 256 символов. Когда файловая система создана, это количество места «зарезервировано» для каждого и каждого имени файла? Другими словами, это дисковое хранилище не влияет на фактическое имя файла, потому что максимум уже используется? Или это сложнее, чем это?
Предположим, у меня есть файл с именем «Joe.txt» и переименовать его на «Joe2.txt». Считается ли количество доступного дискового пространства после этого? Как насчет более длинных имен, таких как "joe_version.txt" или "joe_original_version_with_bug_that_jim_seved.txt"? Я беспокоюсь о порогах на уровне 8, 16, 32, 64 и т. Д. Я буду хранить миллионы изображений. Я никогда не удосужился беспокоиться о такой проблеме, поэтому я не совсем уверен, как это работает.
Хотя Ext - единственная файловая система, которую я использую, обсуждая жир, а другие могут быть полезны для кого-то другого, что имеет аналогичный вопрос.
Решение
На Linux (или в целом файловые системы типа UNIX) хранятся в inodes ввода каталога, которые содержат список отображений (имя файла, inode) для каждого файла в каталоге. Мое понимание заключается в том, что для каждого файла имеется зарезервированное пространство для символов name_max. И действительно, на Ninux name_max 255.
Итак, чтобы ответить на вас вопрос, когда создана файловая система, нет места, зарезервированного для имени файлов, но после создания файла имена_max bytes зарезервирован для имени. Более того, для каталога INode мое понимание заключается в том, что, по крайней мере, на пространстве Ext2 / 3/4 выделяется в дисковом блоке (4 КБ, если вы не делаете что-то очень странное) детализацию по мере необходимости. IE каталог занимает минимум 4 кБ (плюс вход в inode родительский каталог), и если список пар (файл, inode) пары не вписываются в это 4 кБ (минус других накладных расходов, например, разрешения на каталог), это Выделяет новый 4 КБ блока для продолжения списка и т. Д. (Ext2 / 3 использует непрямующую схему блока, тогда как EXT4 использует экстенты).
Другие советы
FAT16 предварительно выделенные.
FAT32 использует работу, чтобы обеспечить длительные имена файлов; Поскольку имя файла становится дольше, для хранения дополнительных символов - и файл каталогов требуется дополнительные файлы каталога - и файл каталога является обычным файлом, поэтому это потребляет дополнительное место для дисков. Однако наименьшее выделение - это один кластер, поэтому, если только дополнительный магазин файла не превышает кластерную границу, никакое дополнительное дисковое пространство не потребляется из того, что вы могли бы в противном случае использовали.
Я не знаю, знаком с тем, как имена файлов FileNames обрабатываются в файловых системах типа UNIX.