Каждый раз, когда вы пытаетесь повторно использовать стандартные файловые дескрипторы, такие как:
<cmd> 1>err 2>>err 1>out
Переписывается определение первого определения. То есть 1 теперь указывает только на out, а 2 на err. Лучше всего было бы использовать два отдельных файла (например, err и out), помечать временные метки выходных данных и сортировать их самостоятельно, чтобы получить комбинированный вывод.