URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 76335
[ Назад ]

Исходное сообщение
"как БЫСТРО удалить каталог с кучей мелких файлов?"

Отправлено Kos , 20-Сен-07 12:34 
Привет всем!

Есть каталог в котором порядка миллиона))))) мелких файлов. rm -rf его удалит за сутки-двое. Можно ли сделать бастрее?
Сразу уточню что он размещен не на отдельной файловой системе)


Содержание

Сообщения в этом обсуждении
"как БЫСТРО удалить каталог с кучей мелких файлов?"
Отправлено бусик , 20-Сен-07 13:14 
>Привет всем!
>
>Есть каталог в котором порядка миллиона))))) мелких файлов. rm -rf его удалит
>за сутки-двое. Можно ли сделать бастрее?
>Сразу уточню что он размещен не на отдельной файловой системе)

раньше поставите - раньше удалится ) иначе никак )


"как БЫСТРО удалить каталог с кучей мелких файлов?"
Отправлено Kos , 20-Сен-07 13:54 
>>Привет всем!
>>
>>Есть каталог в котором порядка миллиона))))) мелких файлов. rm -rf его удалит
>>за сутки-двое. Можно ли сделать бастрее?
>>Сразу уточню что он размещен не на отдельной файловой системе)
>
>раньше поставите - раньше удалится ) иначе никак )

поставил ещё вчера) но у меня 3 таких каталога :(


"как БЫСТРО удалить каталог с кучей мелких файлов?"
Отправлено YuryD , 20-Сен-07 13:58 
>>>Привет всем!
>>>
>>>Есть каталог в котором порядка миллиона))))) мелких файлов. rm -rf его удалит
>>>за сутки-двое. Можно ли сделать бастрее?
>>>Сразу уточню что он размещен не на отдельной файловой системе)
>>
>>раньше поставите - раньше удалится ) иначе никак )
>
>поставил ещё вчера) но у меня 3 таких каталога :(

Скопировать все нужное и укоцать раздел :)


"как БЫСТРО удалить каталог с кучей мелких файлов?"
Отправлено angra , 20-Сен-07 14:35 
>Привет всем!
>
>Есть каталог в котором порядка миллиона))))) мелких файлов. rm -rf его удалит
>за сутки-двое. Можно ли сделать бастрее?
>Сразу уточню что он размещен не на отдельной файловой системе)

Боюсь что без модификации ядра никак. Дело в том что системный вызов unlink может удалить лишь один файл за раз. То есть для каждого файла в этом каталоге приходится полностью перезаписывать каталог, а он не маленький. Чем меньше файлов будет оставаться в каталоге, тем быстрей будет идти процесс, то есть удаление половины файлов это не 50% от общего процесса, а где-то 80-90. Возможно может помочь изменение опций журналирования и кеширования для файловой системы.

perl -e 'foreach (1..800000){open FH,">asdf/$_";print FH "test",close FH;}' выполнилось у меня где-то минут за 10, а вот удаление примерно за полчаса. В любом случае это значительно меньше нескольких суток. Хотя если имена файлов у вас длинные да еще и по NFS, то тогда можно только посочувствовать