O problema são os espaços em branco no seu nome de arquivo. Seu novo shell não o trata como literal e o interpreta como arquivos separados.
Você pode usar a opção -print0
com o comando xargs
:
find . -name "*.do*" -print0 | xargs -0 stat --printf='%n --- %y \n'
ou usando o comando -exec
com +
em vez de \;
:
find . -name "*.do*" -exec stat --printf='%n --- %y \n' {} +
Geralmente, você deve evitar chamar o novo shell, porque você não pode garantir que seu resultado (nome do arquivo, neste caso) seja interpretado como segurança pelo novo shell.