Do Guia de script avançado de bash
[j]<>filename
# Open file "filename" for reading and writing,
#+ and assign file descriptor "j" to it.
# If "filename" does not exist, create it.
# If file descriptor "j" is not specified, default to fd 0, stdin.
#
# An application of this is writing at a specified place in a file.
echo 1234567890 > File # Write string to "File".
exec 3<> File # Open "File" and assign fd 3 to it.
read -n 4 <&3 # Read only 4 characters.
echo -n . >&3 # Write a decimal point there.
exec 3>&- # Close fd 3.
cat File # ==> 1234.67890
# Random access, by golly.
Então,
echo <> temp.txt
Criará temp.txt
, se não existir, e imprimirá uma linha vazia. Isso é tudo. É equivalente a:
touch temp.txt && echo
Nota, os programas most não esperam que o descritor de arquivo STDIN (0) esteja aberto para escrita, então em maioria casos, o seguinte será aproximadamente equivalente:
command <> file
command 0<> file
touch file && command < file
Como os programas mais não esperam que o STDOUT esteja aberto para leitura, os seguintes são geralmente equivalentes:
command 1<> file
command > file
E para STDERR:
command 2<> file
command &2> file