Se a resposta de John T fosse o que você queria, então você formulou erroneamente a seguinte pergunta:)
Ele descreveu sucintamente o < e > operadores, mas você perguntou sobre < & gt ;. Esse é um operador raramente usado, que não tenho certeza se esperaria ver no LPIC-1, mas apenas para registro (já que você provavelmente já fez esse exame):
Quando você executa interativamente um comando sem redirecionar sua entrada padrão, a saída e o erro normalmente serão anexados ao tty; lerá de stdin e escreverá para stdout / stderr. Embora você possa não esperar, esses descritores de arquivos normalmente são abertos para leitura e gravação. Tente executar um script como
#!/bin/bash
echo "I'm writing to stdin!" >&0
A execução deste nu irá funcionar, pelo menos nas versões atuais bash . No entanto, quando você usa o < e > redirecionadores, os descritores de arquivos stdin e stdout são abertos apenas para leitura e gravação, respectivamente, portanto, se você invocar isso com entrada redirecionada de um arquivo -
./write-to-stdin < /tmp/some-input
não funcionará (razoavelmente). Se você realmente deseja que um programa chamado com redirecionamento seja capaz de escrever e gravar em um único descritor de arquivo, < > fará o trabalho.
./read-and-write-stdin <> /tmp/some-input-and-output
./read-and-write-stdout 1<> /tmp/some-input-and-output
Como a maioria dos programas espera apenas que stdin seja um descritor de leitura e stdout como um descritor de gravação, provavelmente é possível ver por que isso raramente é útil, mas se você estiver escrevendo scripts subordinados (ou usando funções), poderá aproveitar do comportamento você mesmo.