Você pode usar -I para definir um marcador de lugar que será substituído por cada valor dos argumentos alimentados para xargs . Por exemplo,
ls -1 | xargs -I '{}' echo '{}'
chamará echo uma vez por linha da saída de ls . Você geralmente verá '{}' usado, presumivelmente porque é o mesmo que o espaço reservado de find .
No seu caso, você também precisa pré-processar a saída de file para extrair os nomes dos arquivos correspondentes; como há um grep , podemos usar apenas awk para fazer ambos e simplificar também a invocação de file :
file * | awk -F: '/image/ { print $1 }' | xargs -I '{}' mv '{}' destination
Se você tem o GNU mv , pode usar apenas -t para passar vários arquivos de origem:
file * | awk -F: '/image/ { print $1 }' | xargs mv -t destination