Як ущільнити каталог


21

Кожна так часто, якась програма запускає дику інформацію і заповнює каталог величезною кількістю файлів. Як тільки ми виправляємо помилку та очищаємо файли, каталог залишається великим (> 50MB), хоча в ньому всього 20-30 файлів.

Чи є якась команда, яка стискає каталог, не відтворюючи його?

Бонусні бали: чи впливає величезний порожній каталог на ефективність доступу до цього каталогу? Я припускаю, що це робить, але, можливо, не варто турбуватися. Це здається повільніше робити lsв такому каталозі.


Я не думаю, що такого є (але, звичайно, я можу бути абсолютно неправильним). Можливо, деякі інструменти, що стосуються файлової системи, - який FS ви використовуєте?
Мат

ext3, але я бачив цю проблему в більшості файлових систем, з якими я мав справу в світі Unix. Я також не думаю, що існує такий інструмент, але я хотів би бути неправдивим.
Матьє Лонгтін

4
Я позначив ваше запитання "ext3", оскільки це питання дуже характерне для файлової системи. Я не знаю відповіді для ext3 (я підозрюю, що вам потрібно відтворити каталог, щоб він зменшився), але ви намагалися застосувати fsck? ext3's fsckмає пропуск "Оптимізація каталогу". Я не знаю, що це робить, але, можливо, це скорочує каталоги, які занадто великі? У будь-якому випадку, як точка даних FWIW, xfs автозаписує каталоги, у яких було видалено файли з них.
Селада

Ви випадково видалили відкриті файли?
Карлсон

1
ufs на BSD і Mac HFS обидва скорочують каталоги також на ходу. Я здивований, дізнавшись, що ext3 не робить. Схоже, це не роблять і ext4.
Кайл Джонс

Відповіді:


10

Ви e2fsck -Dпрацюєте у відключеній файловій системі.


1
Я сподівався на щось менш руйнівне.
Матьє Лонгтін

1
@MathieuLongtin, Ви також можете перемістити все до нового каталогу, видалити старий і перейменувати новий назад.
psusi

Я знав про цей трюк, але він може зіпсувати процеси, використовуючи каталог як поточний робочий каталог.
Матьє Лонгтін
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.