Não use find
com xargs
piping. Se você fizer isso, tente usar com find -print0
e xargs -0
para usar o caractere nulo em vez de novas linhas como o nome do arquivo.
De man find
:
-print0
True; print the full file name on the standard output, followed by a null character (instead of the newline character that -print uses). This allows file names that contain newlines or other types of white space to be correctly interpreted by programs that process the find output. This option corresponds to the -0 option of xargs.
Então, o seu comando será:
ssh user@hostname find /path/to/find/ -type f -mtime 10 -print0 | xargs -0 zgrep -il 'pattern_to_find'
Mas -print0
não é POSIX (se não me engano). Assim, existe apenas um caminho, leia abaixo.
Ou a melhor maneira de usar a opção -exec
do comando find
sem xargs
piping:
ssh user@hostname find /path/to/find/ -type f -mtime 10 -exec grep -il 'set' {} + ;
Veja Como posso pesquisar recursivamente todos os arquivos em busca de uma string?