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 .