Проблема в том, что часть «> foo.txt» интерпретируется и выполняется вашим интерпретатором команд (оболочкой) задолго до запуска команды sudo. Команда sudo не знает, что вы хотите перенаправить свой вывод в файл.
У вашего интерпретатора команд нет полномочий root (но команда sudo будет позже), поэтому он не может перенаправить вывод в foo. текст.