Você não precisa de nenhum pipe e xargs para fazer os nomes dos arquivos como argumentos para mv .
Use apenas mv na ação -exec de find :
find /home -type f -name '*.pdf' -exec mv -t /destination {} +
- Substitua
/destinationpelo diretório de destino real -
findlidará com todos os nomes de arquivos possíveis -
findprocessaráARG_MAXpassando quantos nomes de arquivo de uma só vez, para que não acioneARG_MAX - Se você estiver procurando apenas arquivos (presumivelmente, neste caso), limite o vetor de pesquisa adicionando
-type f - Cite a expansão glob,
'*.pdf', para que o shell não os expanda antecipadamente, poisfindos manipulará
Se por algum motivo estranho, ou para fins de aprendizado, você deve usar pipe xargs :
find /home -type f -name '*.pdf' -print0 | xargs -0 mv -t /destination