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

Кстате,

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

[identity profile] svarttestare.livejournal.com 2009-10-10 12:19 am (UTC)(link)
Та пусть портируют - это как кость с барского плеча MS :) Все равно полноценная и ничем не ограниченная разработка будет вестись только на Windows.

[identity profile] wildman.livejournal.com 2009-10-10 12:21 am (UTC)(link)
вполне возможно. интересно было бы пример.
мне пришлось как то глубоко вляпаться в вынь скрип хост. ничего позитивного не получил. возможно специфика.

зы. с тех пор и поселил у себя набор unixtools(tail, cat, grep, find, awk и прочее) и на работе.

[identity profile] wildman.livejournal.com 2009-10-10 12:21 am (UTC)(link)
:) "5 копеек. надо записать..." (с) день выборов.

расфлудились мы что-то на субботу глядя...
спасибо за дискуссию. спать... :)

[identity profile] svarttestare.livejournal.com 2009-10-10 12:28 am (UTC)(link)
Допустим, что у нас есть папка C:\Superpapka, в которой миллион файлов в миллионе подкаталогов. Нужно удалить все эти файлы не тронув файл dontdelete.me, который в виде многих копий разбросан по разным подпапкам в количестве, скажем, несколько сотен штук.
А теперь, внимание, элегантное решение в Windows! :)

forfiles /p c:\superpapka /s /c "cmd /c if not @fname==dontdelete.me del /q @file"

Вот и все А в Linux (да и вообще в никсах) без медленных комманд find, sed и ужасного синтаксиса не обойтись.

[identity profile] wildman.livejournal.com 2009-10-10 12:53 am (UTC)(link)
т.к. сам с таким в голом шелле не не сталкивался обратился к коллективному бессознательному :)

получил мгновенный ответ вида "man find" :)
если подробнее:
max_posedon> кстати, forfiles в 100 раз медленнее find
max_posedon> а задача решается тупо
max_posedon> find + regexp -exec rm
max_posedon> без sed-а и без синтаксиса

насчет скорости конечно надо тестить... а в остальном... имхо не такое уж "элегантное" в Windows решение :)

[identity profile] svarttestare.livejournal.com 2009-10-10 12:59 am (UTC)(link)
max_posedon> а задача решается тупо
max_posedon> find + regexp -exec rm

Где тут тупо решение задачи? :))) Мне, пожалуйста, конкретную строку, да еще такую, чтобы на UNIX тоже работала :)))

На счет скорости forfiles - он в разы быстрее, чем известные мне 2 решения. В частности, я сравнивал с RHEL и HP-UX на очень быстрых машинках :)

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

[identity profile] wildman.livejournal.com 2009-10-10 01:07 am (UTC)(link)
http://www.linux.ie/newusers/beginners-linux-guide/find.php
раздел "Execute!"

[identity profile] svarttestare.livejournal.com 2009-10-10 01:14 am (UTC)(link)
Это не конкретная строка, которую я жду. И то, что описано по ссылке, вряд ли будет работать в HP-UX, например, или в AIX.
И потом, find - это известный тормоз, да еще и с rm!!! На миллионе файлов в HP-UX на машине с 64 гигабайтами памяти на HP9000-ке по дереву из миллиона файлов и каталогов find "гулял" почти 20 минут. Ну не пиздец, а? :)
В то же время, на вполне тривиальном ноуте с C2D процом и всего лишь 4 гигами памяти с Windows 7 x64, приведенное мною решение с forfiles отработало менее чем за 10 минут.

[identity profile] wildman.livejournal.com 2009-10-10 01:19 am (UTC)(link)
ну forfiles предположим в HP-UX тоже будет работать бесконечное время... как и в любом *nix :)

[identity profile] max-posedon.livejournal.com 2009-10-10 01:20 am (UTC)(link)
>Допустим, что у нас есть папка C:\Superpapka, в которой миллион файлов в миллионе подкаталогов. Нужно удалить все эти файлы не тронув файл dontdelete.me, который в виде многих копий разбросан по разным подпапкам в количестве, скажем, несколько сотен штук.
А теперь, внимание, элегантное решение в Windows! :)

> Вот и все А в Linux (да и вообще в никсах) без медленных комманд find, sed и ужасного синтаксиса не обойтись.

Я готов решить вашу задачу в Linux быстрее чем на Windows, если мы поспорим скажем на ящик пива.

Но решить я готов её именно в Linux, а не во всех POSIX ОС или каких то ебанутых окружениях, не потому что не могу, а потому что вы заявили что именно в Linux оно не красиво и медленно.

Впрочем, вы тоже можете очень сильно улучшить своё решение прочитав man по find, в частности про -delete про -false и прочие -name* параметры.

P.S. На выходные уезжаю отдыхать, если не струсите продолжим общение в воскресенье вечером.

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

find: missing argument to `-exec'

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

[identity profile] svarttestare.livejournal.com 2009-10-10 01:21 am (UTC)(link)
forfiles не будет работать в HP-UX потому что он есть только в Windows :)

[identity profile] svarttestare.livejournal.com 2009-10-10 01:23 am (UTC)(link)
Я для себя уже решил задачу и провел испытания - find с rm, простите, обосрался по времени :) Так что вопрос был чисто академический, и, кстати, изначально, мне нужно было решение не только в Linux, но и в HP-UX, AIX и Solaris. Так что ящик пива вы сами себе купите :)

[identity profile] max-posedon.livejournal.com 2009-10-10 01:27 am (UTC)(link)
Провели испытание частного (далеко не самого лучшего) решения, и решили пофлеймить безосновательным утверждением не про то, что тестировали.

А ящик пива жаль, я надеялся, что вы всё таки уверены в своём утверждении и хотите себе ящик пива. :)

[identity profile] svarttestare.livejournal.com 2009-10-10 01:33 am (UTC)(link)
Любое решение с find будет тормознутым. Хотя бы потому, что кроме поиска и нахождения файлов их нужно еще и удалить rm-ом, а такие операции затратны.
А на счет тестирования - все основательно. На двух машинах были созданы структуры папок произвольной вложенности (но одинаковые), общее количество папок - 500 тыс., а файлов в них 1 млн. Причем 100 тыс. из этих файлов были с вышеуказанным именем и их нужно было удалить. Эксперимент прошел на ура - быстрее всех оказались forfiles, потом RHEL 5.1 бокс и в заключение HP-UX бокс. Я уже не говорю о том, что железяка с RHEL и HP-UX по сути намного производительнее, чем простой ноут с семеркой.
А на счет пива - не заморачивайтесь - я его не пью :) И потом, мы слишком далеко находимся, чтобы обмениваться ящиками пива :) Ну и в конце концов, вы пиво сами себе можете позволить :)

[identity profile] max-posedon.livejournal.com 2009-10-10 04:58 am (UTC)(link)
> Любое решение с find будет тормознутым. Хотя бы потому, что кроме поиска и нахождения файлов их нужно еще и удалить rm-ом, а такие операции затратны.

man find / -delete

-delete
Delete files; true if removal succeeded. If the removal failed, an error message is issued. If
-delete fails, find's exit status will be nonzero (when it eventually exits). Use of -delete
automatically turns on the -depth option.

[identity profile] metaclass.livejournal.com 2009-10-10 06:30 am (UTC)(link)
Я линукс использую для упрощенных целей типа "прокси, файрволл, качалка торрентов, сервер для доступа домой с работы", итд.
Когда вышла виста, была мысль, что микрософт собрался сам себя закопать, и смотрели в сторону линукса "а вдруг появится под него рынок". Но микрософт успешно реабилитировался, выпустив семерку.
А на данный момент меня интересует, как можно разрабатывать под линукс, не затрачивая на это дело совершенно несравнимые с разработкой под винду ресурсы, и чтобы от этого был хоть какой-то финансовый смысл. Пока, из всех общений с линуксоидами получается только одно "нормальный софт написать нормально невозможно и он вообще никому не нужен - народ привык ебаться в гамаке стоя".

[identity profile] metaclass.livejournal.com 2009-10-10 06:33 am (UTC)(link)
Не рассматривается. У всех этот набор "все что нужно" разный. Кому-то нужна какая-то специфическая игрушка, кому-то заказной софт производственного назначения, кому-то клиент-банк с activex в браузере, итд.
А умение линуксоидов ограничивать себя минимальным набором софта уже давно притча во языцех. "Я администрирую сервера, мне линукса хватает, значит должно хватать всем".

[identity profile] metaclass.livejournal.com 2009-10-10 06:38 am (UTC)(link)
Ну вот "потратить полчаса на скрипт" - это как раз занятие для 1% потенциальных пользователей. А остальные хотят прогу с кнопкой "сделайте мне ОК". И ладно бы просто юзера, с линуксом даже с эникейщиками проблема будет.
Например, я почти уверен, что приходящие к юзерам подключать байфлай мастера не смогут подключить его в линуксе, соответственно, клиент с линуксом будет послан в жопу, и будет все подключать сам. И так по множеству вопросов - пользователю линукса хочешь не хочешь нужно становиться профессиональным админом.

[identity profile] metaclass.livejournal.com 2009-10-10 06:40 am (UTC)(link)
в линуксе будет что-то вроде find с инверсией критерия по имени и запуском команды rm для каждого найденного файла. В общем, там тоже в одну строку будет.

[identity profile] vp.livejournal.com 2009-10-10 07:03 am (UTC)(link)
Как ты видишь, ответы классические ответы как тут приведено: "заказчик платит - он и условия
диктует". В 99% случаев ответов это значит, что заказчик оутсорса, а не заказчик конечного продукта. То есть, народу дали кусок работы - он работает. Сам себе задачу не проектирует и не ставит, и работу у себя не принимает. А если бы речь шла о стартапе, к примеру, с анализом рынка и т.п. - раскладка никогда в жизни не была бы такой. А была бы в стиле "пинем на линуксе потому что оно дешевле - быстрее - качественнее и т.п.".

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

[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:15 am (UTC)(link)
Ок, я при случае попробую с delete, но сомневаюсь, что производительность будет намного выше.

Page 2 of 3