Suspeitei que isso é codificado em locate
verificando se a saída é stdout
ou não. E, de fato, locate
tem uma condição para substituir caracteres não imprimíveis por pontos de interrogação quando a saída é um tty (veja printquoted.c
e qmark.c
). Ele considera que os espaços em branco na faixa de caracteres de controle ASCII também não são imprimíveis. Eu acho que isso é lamentável, pois não se esperaria que a saída para o terminal fosse alterada ao passar por cat
. Isso também é verdade para findutils
4.6.0. Enviei um relatório de erros .