Время от времени, какое-то приложение запускается вхолостую и заполняет каталог огромным количеством файлов. Как только мы исправим ошибку и очистим файлы, каталог останется большим (> 50 МБ), хотя в нем всего 20-30 файлов.
Есть ли какая-нибудь команда, которая сжимает каталог, не создавая его заново?
Бонусные баллы: огромный пустой каталог влияет на производительность доступа к этому каталогу? Я предполагаю, что это так, но, возможно, это не стоит беспокоиться. Кажется, медленнее делать ls
в таком каталоге.
Я не думаю, что есть такая вещь (но я, конечно, могу быть совершенно не прав). Может быть, некоторые инструменты для конкретной файловой системы - какую FS вы используете?
—
Мат
ext3, но я видел эту проблему на большинстве файловых систем, с которыми я сталкивался в мире Unix. Я тоже не думаю, что есть такой инструмент, но я бы хотел оказаться неправым.
—
Матье Лонгтин
Я отметил ваш вопрос "ext3", так как этот вопрос очень специфичен для файловой системы. Я не знаю ответа для ext3 (я подозреваю, что вам нужно пересоздать каталог, чтобы уменьшить его), но пытались ли вы форсировать
—
Селада
fsck
? У ext3 fsck
есть проход «Оптимизирующий каталог». Я не знаю, что это делает, но, может быть, это сокращает слишком большие каталоги? В любом случае, как точка данных FWIW, xfs автоматически сжимает каталоги, из которых были удалены файлы.
Вы случайно удалили открытые файлы?
—
Карлсон
UFS на BSD и Mac HFS также сокращают каталоги на лету. Я удивлен, узнав, что ext3 нет. ext4, похоже, тоже этого не делает.
—
Кайл Джонс