De acordo com [1], a diferença é que >|
redireciona a saída para um arquivo, mesmo se a opção noclobber estiver configurada.
A opção noclobber é definida pela opção de linha de comando do bash -C
e impede a substituição de arquivos pelo redirecionamento [2]. Quando a opção noclobber é configurada, ls >| out
sobrescreve o arquivo out
, enquanto ls > out
não.