>>> Есть. В третьем питоне. Не во втором.
>> Я вам открою военную тайну: на втором питоне писать новые проекты не
>> следует. Поддерживается != развивается.
> С Вашей стороны весьма смело предполагатьДа ничего я не предполагал, просто пытался понять причем тут второй питон.
>>>> Если вы действительно хотите странного
>>> То есть такая банальщина как `cp -R` -- это теперь называется "хотеть
>>> странного"?
>> Ломать права при копировании - странно.
> Ну во-первых права при `cp -R` не ломаются.
Детский сад, штаны на лямках.
$ ls -l test1/a
-rwxrwxrwx 1 oh oh 0 ноя 27 17:23 test1/a
$ cp -R test1 test2
$ cp -Rp test1 test3
$ ls -l test2/a
-rwxr-xr-x 1 oh oh 0 ноя 27 17:23 test2/a
$ ls -l test3/a
-rwxrwxrwx 1 oh oh 0 ноя 27 17:23 test3/a
Не били вас, видать, деревянными игрушками за использование cp -R, вот што.
> А во-вторых, Вы невнимательно
> читаете, потому что я явно дал Вам понять ранее, что суть
> не в правах, а в stat-ах: в ctime, mtime, atime.
Ну да, ну да. Проигнорировать все сказанное мной по этому поводу - в лучших традициях модераторов опеннету.
>> Вообще говоря, данный ключик cp - не образец технического дизайна.
> Да неужели? А я Вам напомню, что stat-ы копируются отдельным сисколлом. В
> чём же ошибка вынести его в отдельный флаг, чтобы лишний раз не дёргать?
В том, что утилиты командной строки не должны повторять C API. Если вам нужно его
не дергать - можно сделать ключик "не дергать".
>>>> - можно извратиться и сильнее.
>>> Именно. Вы уже чувствуете суть, к которой я Вас подвожу, myhand? Чтобы
>>> просто рекурсивно скопировать директорию, я что, в самом деле должен ТАК извращаться?
>> Нет, чтобы _просто рекурсивно скопировать_ - функция есть. Косплея "cp -R" - нет.
> Да там вся либа состряпана настолько "абыкак", что легче всю с нуля
> переписать.
Пока я не увидел "абыкак", увидел плохое знакомство со штатной документацией и странные
претензии, чтобы было "как у Васи".
>>> Всё в итоге сводится к тому, что оказывается легче написать `os.system("cp -R ...")`
>> И отвалиться на каком-нибудь Windows. Да, питон поддерживает не только Unix.
> То, что хреновая либа работает сразу на нескольких платформах, безусловно делает её
> менее хреновой, но к сожалению не делает её хорошей.
То, что либа работает не так, как утилита на некоторой платформе - не значит, что либа хреновая.
>> Это одна из причин, почему искать в стандартной библиотеке банальное
>> воспроизведение утилит GNU - немного глупо.
> За что Вы так не любите всё GNU-тое, myhand? Это что-то личное?
Да, я тайнопоклонник BSD и сотоны. Протыкаю иголками плюшевых пингвинов по пятницам, срочно сообщите Шигорину!
>>> А коли так, то нафиг нужна такая стандартная библиотека?
>> Стандартная библиотека нужна, как намекает название - для решения стандартных задач в
>> первую очередь.
> Что может быть более стандартного, чем `cp -R`?
Ну не знаю. open? read? write? Это викторина?
Если вопрос про любимый ключ cp - то у меня он -a, хоть и нестандарт. А для рекурсивного копирования по-posix - как минимум cp -Rp.
>> Нет, чтобы _просто рекурсивно скопировать_ - функция есть. Косплея "cp -R" - нет.
> Вы таки мне прямо говорите, что "в стандартной библиотеке питона есть одна
> функция, которая как-то что-то может рекурсивно скопировать, правда её функционал явно
> не полон, не охватывает всех граничных случаев, не следует устоявшимся дефолтам
Я таки прямо говорю, что в стандартной библиотеке питона есть нужная вам функция,
умеющая искаропки все типовые случаи рекурсивного копирования и позволяющая
несложно кастомизировать под самые разнообразные "устоявшиеся дефолты" для остальных
"не 95%" и причисляющим себя к.
> по умолчанию дёргает дополнительные сисколлы
Ну данное умолчание - как бы то, что людям надо по-умолчанию. См. про cp -a vs -R выше.
> и её поведение недостаточно параметризовано
Кому недостаточно? Вы можете просто переопределить функцию copy, в которой все ваши "дополнительные сисколлы". Давайте вы лучше мне расскажете как "параметризовать" cp, чтобы оно мне mtime всегда в 0 Unix Epoch выставляло.
> чтобы хоть как-то добиться от неё поведения, все вариации которого есть
> в команде cp из состава coreutils по умолчанию".
А почему надо добиваться вариаций поведения (кстати, нестандартного) coreutils, а не, наоборот, coreutils добиваться поведения copytree?
> Это мы сейчас обсудили ВСЕГО ЛИШЬ копирование файлов. Куда уж на
> питоне сложные задачи решать, когда в его стандартных либах простые задачи
> в таком состоянии находятся?
Да я как-бы не увидел ничего ужасающего в вышеизложенном для питоновской
стандартной библиотеки. Ну, кто-то документацию прочитал плохо, кто-то считает,
что должно быть не так, а как у Васи (правда не совсем твердо знает как на самом
деле у Васи сделано). Не, не впечатлило. Честно говоря, я считаю все сказанное
вами довольно жирным троллингом.
> И я бы ещё понял, и закрыл бы на всё это глаза, если бы этих библиотек просто не было.
Варианта тут только два, если язык хоть кому-то нужен. Либо все эти библиотеки будут в stdlib,
либо будут не в stdlib. Оба варианта имеют плюсы и минусы. На начальном этапе, безусловно,
было "all batteries included" - лучше. Наверно, со временем будут отрывать.
> Но они есть, и они гoвно.
В сравнении с чем? Хочу, чтобы было зашибись, вы не сумлевайтесь.