Espero que isso funcione:
find . -type f \( -size -2M -o -size 2M \) -exec cp -t ~/Pictures/test_folder {} +
(tirei o teste comum -type f .)
Com + , espera-se que o {} seja o último item em um comando -exec . De o manual de localização do GNU :
Se você usa find e xargs , lembre-se de usar as opções -print0 e -0 :
find ... -print0 | xargs -0 cp -t ...
Com -print0 , os nomes dos arquivos são delimitados com o caractere ASCII NUL, o único não permitido nos caminhos. Sem isso, xargs poderia dividir nomes de arquivos em espaços, portanto, ./file1 - foo.txt seria visto como ./file1 , - e foo.txt pelo comando cp .