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
.