В сообщении от 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 надобности нет. Вообще говоря, наличие указанного бага в 
узкоспециализированном языке (шелл) и отсутствие в языке с широкой областью 
применения (тикль) заставляет подумать о том, что пора шелл выкинуть на 
свалку. Благо заменить есть чем - функциональных языков хватает.

Ответить