O redirecionamento em
cat file1 >file2
é um redirecionamento de saída, enquanto <
especifica um redirecionamento de entrada.
A linha
file2 < cat file1
é o mesmo que
file2 file1 <cat
(não importa muito onde o redirecionamento realmente ocorre quando ele é manipulado pelo shell em sua própria etapa de análise e, em seguida, removido do comando real), o que significa "executar file2
com file1
como argumento e redirecionar o entrada padrão do arquivo cat
".
O erro vem do shell tentando abrir cat
como um arquivo no diretório atual. O erro ocorre antes que o shell tente executar o comando file2
.
Relacionados: Como esse comando é legal? "> arquivo1 < arquivo2 cat"