Não é inútil - é uma forma especializada do >operador de redirecionamento simples (e, talvez confuso, nada a ver com pipes). bashe a maioria dos outros shells modernos tem uma opção noclobber, que impede o redirecionamento de sobrescrever ou destruir um arquivo que já existe. Por exemplo, se noclobberfor verdadeiro e o arquivo /tmp/output.txtjá existir, isso deverá falhar:
$ some-command > /tmp/output.txt
No entanto, você pode substituir explicitamente a configuração noclobberpelo >|operador de redirecionamento - o redirecionamento funcionará, mesmo que noclobberesteja definido.
Você pode descobrir se noclobberestá definido em seu ambiente atual com set -o.
Para a nota histórica, a opção "noclobber" e seus recursos de derivação vêm do csh(final dos anos 70). kshcopiado (início dos anos 80), mas usado em >|vez de >!. O POSIX especificou a kshsintaxe (portanto, todos os shells POSIX, incluindo bash, derivados de cinzas mais recentes usados como sh em alguns sistemas, o suportam). O Zsh suporta as duas sintaxes. Eu não acho que foi adicionado a qualquer variante Bourne shell, mas posso estar errado.
>|em: stackoverflow.com/questions/818255/in-the-bash-shell-what-is-21/…