ls me dá ordens de classificação diferentes durante um trabalho cron

3

Eu tenho um cron job que, entre outras coisas, faz um ls recursivo de um diretório em um arquivo. Isso é comparado a outro arquivo que eu criei que, supostamente, contém uma listagem idêntica do mesmo diretório. Meu problema é que, quando eu gerar a versão para comparação, eu obtenho os arquivos listados em ordem de maiúsculas e minúsculas. Quando a tarefa do cron é executada, sua lista é exibida em ordem de maiúsculas e minúsculas.

Como posso fazer com que ambos saiam da mesma maneira (não importa qual)? Minha chamada para ls é %código%; Até onde eu sei, o LC_COLLATE não é definido em nenhuma das configurações.

    
por Jim Miller 03.06.2013 / 22:20

1 resposta

6

Os problemas de classificação podem ser evitados ao forçar explicitamente os aplicativos a usar uma determinada ordem de classificação. Você pode verificar a localidade atual executando locale em vez do programa em questão e comparar a saída de diferentes situações de chamada.

A ordem de classificação pode ser forçada configurando LC_COLLATE / LC_ALL na linha de comando:

LC_COLLATE=C ls ...
LC_ALL=C     ls ...
    
por 04.06.2013 / 00:11