В сообщении от Monday 24 December 2007 10:15:15 Mikolaj Golub написал(а): > On Sun, 23 Dec 2007 18:05:23 +0300 Alexey Pechnikov wrote: > > AP> P.S. Утилита rm отвратительно работают с большим числом файлов в > директории. Я AP> пишу свои скрипты на tcl, которые выполняют то же самое > на несколько порядков AP> быстрее. В то же время ls работает нормально, не > знаю, в чем проблема. На AP> примере миллиона файлов: rm /test_1000000/* > думает часами и зверски насилует AP> винт, в то время как на тикле foreach > fn [glob /test_1000000/*] {file delete AP> $fn} работает две-три минуты и > почти не шелестит винтом. Посмотрите, может, и AP> у вас где подобные > грабли закопаны. > > Сдается мне, что ту проблема с работой glob в шелле а не с утилитой rm. И > вообще использование * при работе с миллионом файлов в shell кажется мягко > говоря странным. Неужели не нарвались на Argument list too long? Ну да, > возможно еще один повод похаять shell и порадоваться за тикль, но к > сожалению без шелла никуда :-( > > -- > Mikolaj Golub
Из шелла писал _одну_ строку - rm /test_1000000/*. И аргумент "/test_1000000/*" всего один, откуда возьмется "Argument list too long?" Если бы в тикле оно не работало, да, полез бы в исходники rm разбираться, а так - вот именно, что повод похаять, но исправлять этот самый rm надобности нет. Вообще говоря, наличие указанного бага в узкоспециализированном языке (шелл) и отсутствие в языке с широкой областью применения (тикль) заставляет подумать о том, что пора шелл выкинуть на свалку. Благо заменить есть чем - функциональных языков хватает.