Конечно, есть POSIX-совместимое решение проблемы:
найти dir1 - имя '*.png' -exec sh -c 'cp "$@" dir2' null {} +
Нет необходимости использовать нестандартные функции, специфичные для производителя.
BTW: AFAIK, функция execplus была представлена в 1989 году Дэвидом Корном во время работы на SVr4. Важная справочная информация: POSIX не определяет новые возможности, а просто стандартизирует существующие решения, так что если стандарт POSIX противоречит решению, которое было основным, то POSIX обычно ошибается.
Есть известный недавний пример: waitid() была также представлена SVr4 в 1989 году и определяет, что все 32 бита из кода выхода должны быть доступны родителю. Стандарт SUSv2 (с 1997 года) был корректен, но по неизвестным причинам в более поздних версиях упоминалось, что код выхода должен быть замаскирован под 0xFF. Недавно было обнаружено, что это ошибка POSIX.
Unix был создан хакерами для собственного использования. Короткие имена означают меньше печатного текста, что имена «действительно мнемоничны для использования случайными пользователями» (, т. е. называть их «копией», «списком -файлов», «изменить -каталог» или что-то еще )было совершенно исключено. Таким образом, очень распространенные команды имеют двухбуквенные -имена, по возможности смутно мнемонические (rm, cp, cd, ed, ln, cc, as, ld,... ), некоторые имеют имена в честь своих авторов (awk ), другие являются сокращениями команд (grep для "g/Regular Expression/p" в ed (1 )).
Исторические капризы в изобилии.