metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2009-10-09 04:33 pm

Кстате,

к вопросу о власти крипто-линуксоидов.
Я так понимаю, что у тех, у кого реально есть возможность чего-нибудь накрутить в софте для госструктур, достаточно хорошая зарплата и вообще положение в обществе, чтобы их весь этот мрак, который мы тут массово обсуждаем, никак не интересовал.
Если есть ресурсы делать всякую опердень на обычных языках силами 100 человек, то нахер не нужно никакое ФП. Если есть возможность купить, впарить винды, заплатить откаты и еще при наваре остаться - нахер не нужен никакой линукс, вообще. И если есть зарплата, позволяющая все нужное покупать и еще и откладывать - нахер не нужны никакие революции, смены власти и прочее, на что дрочат все радикалы, от либералов до левых.

[identity profile] wildman.livejournal.com 2009-10-10 01:06 am (UTC)(link)
$ find . -regex '.*/file.ext' -exec 'rm -f'
что то типа такого.
по скорости на "миллион в миллионе" очень не уверен что forfiles будет быстрее. но без теста утверждать не возьмусь. тут много чего влияет. и файловая система не в последнюю очередь (ну тем более что на отдельно взятых "миллион в миллионе" просто не реально создать).

[identity profile] svarttestare.livejournal.com 2009-10-10 01:21 am (UTC)(link)
Не работает ваша строка в RHEL по причине:

find: missing argument to `-exec'

Разбираться нет времени и желания :) Синтаксис уже ужасен - в Windows он предельно понятен - один параметр для определенного, конкретного действия. И ничего лишнего.

[identity profile] d4s.livejournal.com 2009-10-10 08:41 am (UTC)(link)
find ! -name dontdelete.me -type f -delete
на hp-ux проверить не могу - нету

[identity profile] svarttestare.livejournal.com 2009-10-10 09:17 am (UTC)(link)
А если по пути встретится папка с таким же именем, как и нужный нам файл? То есть dontdelete.me? Что будет с ней?

[identity profile] d4s.livejournal.com 2009-10-10 09:32 am (UTC)(link)
-type f

[identity profile] d4s.livejournal.com 2009-10-10 08:49 am (UTC)(link)
и да! как-то ваше решение в виндовс не очень элегантно выглядит.
по крайней мере для меня, слабо разбирающегося в виндовых скриптах, интуитивно непонятны все эти /p /s и т.д.

и, кстати, ваше решение работает на всех версиях Windows ? хотя бы 32-хбитных ?
если нет, то в условии задачи вы не имеете морального права требовать работы скрипта-аналога даже на всех версиях линукса, не говоря уж о других разных *nix-системах.

PS моя позиция к фанатизму различных адептов очень близка к позиции ребе wildwildman.

[identity profile] svarttestare.livejournal.com 2009-10-10 09:20 am (UTC)(link)
В случае с forfiles битность не играет роли. А сама команда, судя по описанию, появилась в далекой Windows 2000.

[identity profile] d4s.livejournal.com 2009-10-10 09:47 am (UTC)(link)
угу. т.е. в Win9x и Millenium оно не работет.
битность я ввел для того, чтобы не тянуть некогда популярную Win 3.x, но если вы настаиваете... ;-)

т.е. получается, что для Win вы выбрали какое-то конкретное семейство, а для *nix требуете работы везде. неувязочка.

я вот сейчас тест буду проводить - очень уж ваша задачка занятной оказалась ;-)
если есть время - давайте проведем нормальные тесты, а не будем меряться пиписьками ;-)
У меня Win систем нет - поэтому на них проверить не смогу.

Предпосылки:
1. ФС - в RAM (чтобы не сказывалось влияние веников)
2. количество директорий - 1000
3. количество файлов - 1000 + dontdelete.me

количество уменьшено, т.к. лично у меня терпения не хватит, чтобы дождаться создания всего этого барахла. + не всякая ФС потянет.
и памяти не хватит - только что 2G на tmpfs было съедено только половиной ;-)

PS лучше поделитесь красивым скриптом для генерации такого чудовищного количества директорий/файлов - у меня пока что вот: http://pastebin.ca/1609460

[identity profile] svarttestare.livejournal.com 2009-10-10 09:51 am (UTC)(link)
Для никс я требую выполнения этой команды (или серии команд) в одном и том же шеле, в частности ksh. Разве это проблема у разных никсов, чтобы все одинаково работало если один и тот же интерпретатор? :)

[identity profile] d4s.livejournal.com 2009-10-10 05:12 pm (UTC)(link)
при чем тут шелл ?
forfiles - не является частью шелла - это внешняя отдельная команда, исходя из описания, я не понимаю зачем они переименовали find и переделали опции?
find - зависит от производителя конкретного *nix и, опять-таки, не является частью шелла.
я использую gnu/find - как наиболее распространенного.

[identity profile] svarttestare.livejournal.com 2009-10-10 08:21 pm (UTC)(link)
Кто переименовал??? Forfiles - это в Windows. В никсах прямого аналога нет, но в качестве замены могут выступать разные комбинации find/sed/awk - смотря что нужно делать. При этом, в Windows есть и find и, собственно, findstr (в каком-то смысле аналог grep).
На счет команды find в никсах - она же везде одинаковая должна быть (функционально - то есть набором ключей и параметров - так точно). Поэтому я и ожидаю, что работать решение должно одинаково хорошо и в Linux и в System V системах и в BSD.