find saída do comando vazia quando redirecionada para um arquivo

1

Eu estou tentando obter uma lista de arquivos usando o comando find da seguinte forma:

find . \( -iname @eaDir -o -iname .DS_Store -o -iname Thumbs.db \) -prune -o -mtime -25 -type f -printf "%P\n"

Isso está funcionando bem.

No entanto, se eu tentar redirecionar a saída do comando acima para um arquivo, o último permanecerá vazio:

FILES_TO_BACKUP=/tmp/__$$_myfiles.lst
find . \( -iname @eaDir -o -iname .DS_Store -o -iname Thumbs.db \) -prune -o -mtime -25 -type f -printf "%P\n" > $FILES_TO_BACKUP

Alguém tem alguma ideia do porquê?

    
por EEM RT 27.02.2017 / 18:15

1 resposta

0

Você está mudando de usuário ou similar entre invocar do script e executar a partir da linha de comando? Se assim for, talvez o PATH tenha mudado e uma descoberta diferente esteja sendo executada.

Com problemas peculiares como esse, geralmente executo o comando com 'strace' para ver o que ele está fazendo de diferente.

Das duas invocações que você deu, eu não consigo ver nenhuma diferença, há talvez uma sugestão de que você está executando o segundo de um script, então talvez seja aí que está a diferença. Você poderia executar 'pwd' antes de ambos, apenas para garantir que eles estão sendo executados a partir do mesmo local e um 'qual encontrar' também pode ser útil.

    
por 27.02.2017 / 19:41