Обычно синтаксис для перенаправления в этом случае должен быть cat first > temp. Это означает, что вывод cat в first отправляется в файл temp. В случае вашего утверждения cat < first > temp выход cat не был завершен во время перенаправления на него снова.
Однако cat ввод файла и выход, перенаправленный в другой файл, не отличаются от базового cp.