Кстате,
к вопросу о власти крипто-линуксоидов.
Я так понимаю, что у тех, у кого реально есть возможность чего-нибудь накрутить в софте для госструктур, достаточно хорошая зарплата и вообще положение в обществе, чтобы их весь этот мрак, который мы тут массово обсуждаем, никак не интересовал.
Если есть ресурсы делать всякую опердень на обычных языках силами 100 человек, то нахер не нужно никакое ФП. Если есть возможность купить, впарить винды, заплатить откаты и еще при наваре остаться - нахер не нужен никакой линукс, вообще. И если есть зарплата, позволяющая все нужное покупать и еще и откладывать - нахер не нужны никакие революции, смены власти и прочее, на что дрочат все радикалы, от либералов до левых.
Я так понимаю, что у тех, у кого реально есть возможность чего-нибудь накрутить в софте для госструктур, достаточно хорошая зарплата и вообще положение в обществе, чтобы их весь этот мрак, который мы тут массово обсуждаем, никак не интересовал.
Если есть ресурсы делать всякую опердень на обычных языках силами 100 человек, то нахер не нужно никакое ФП. Если есть возможность купить, впарить винды, заплатить откаты и еще при наваре остаться - нахер не нужен никакой линукс, вообще. И если есть зарплата, позволяющая все нужное покупать и еще и откладывать - нахер не нужны никакие революции, смены власти и прочее, на что дрочат все радикалы, от либералов до левых.
no subject
раздел "Execute!"
no subject
И потом, find - это известный тормоз, да еще и с rm!!! На миллионе файлов в HP-UX на машине с 64 гигабайтами памяти на HP9000-ке по дереву из миллиона файлов и каталогов find "гулял" почти 20 минут. Ну не пиздец, а? :)
В то же время, на вполне тривиальном ноуте с C2D процом и всего лишь 4 гигами памяти с Windows 7 x64, приведенное мною решение с forfiles отработало менее чем за 10 минут.
no subject
no subject
no subject
А теперь, внимание, элегантное решение в Windows! :)
> Вот и все А в Linux (да и вообще в никсах) без медленных комманд find, sed и ужасного синтаксиса не обойтись.
Я готов решить вашу задачу в Linux быстрее чем на Windows, если мы поспорим скажем на ящик пива.
Но решить я готов её именно в Linux, а не во всех POSIX ОС или каких то ебанутых окружениях, не потому что не могу, а потому что вы заявили что именно в Linux оно не красиво и медленно.
Впрочем, вы тоже можете очень сильно улучшить своё решение прочитав man по find, в частности про -delete про -false и прочие -name* параметры.
P.S. На выходные уезжаю отдыхать, если не струсите продолжим общение в воскресенье вечером.
no subject
no subject
А ящик пива жаль, я надеялся, что вы всё таки уверены в своём утверждении и хотите себе ящик пива. :)
no subject
А на счет тестирования - все основательно. На двух машинах были созданы структуры папок произвольной вложенности (но одинаковые), общее количество папок - 500 тыс., а файлов в них 1 млн. Причем 100 тыс. из этих файлов были с вышеуказанным именем и их нужно было удалить. Эксперимент прошел на ура - быстрее всех оказались forfiles, потом RHEL 5.1 бокс и в заключение HP-UX бокс. Я уже не говорю о том, что железяка с RHEL и HP-UX по сути намного производительнее, чем простой ноут с семеркой.
А на счет пива - не заморачивайтесь - я его не пью :) И потом, мы слишком далеко находимся, чтобы обмениваться ящиками пива :) Ну и в конце концов, вы пиво сами себе можете позволить :)
no subject
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.
no subject
no subject
find /superpapaka -type f \! -name dontdelete.me -delete
find /superpapaka -type f \! -name dontdelete.me -exec rm -rf {} \+
Обратить внимание на плюс вместо точки с запятой - он форкнет rm минимальное количество раз, что существенно влияет на производительность.
Ну а требование, чтобы все юниксы работали одинаково, если одинаковый интерпретатор shell - звучит
бредовопо меньше мере странно. Ибо кроме шелла есть еще куча утилит, не встроенных в него. И find в их числе, это "внешняя команда" в терминах DOS/Windows. И в той же Windows набор этих внешних команд и их синтаксис тоже вполне отличается от версии к версии.