Eu tenho milhões de imagens no meu servidor em nuvem ubuntu. Quando movo uma pasta completa contendo 12 milhões de imagens usando o mv
comando, isso acontece quase instantaneamente. No entanto, quando eu mv
apenas imagens (não a pasta), leva algum tempo. Existe uma maneira de mover todas as imagens tão rapidamente quanto as pastas?
Isto é o que está acontecendo:
pasta src tem 12 milhões de imagens e eu a movo para a pasta dst usando
$ mv src ../dst
Acontece imediatamente
Dentro da pasta src, faço isso para mover:
find -maxdepth 1 -name '*.jpg' -exec mv -t ../../dst/ {} +
Isso leva algum tempo.
Existe uma maneira de acelerar o segundo processo?
dst
está em uma partição enquanto ../../dst
está em outra.
{}
argumentos onde os nomes dos arquivos seriam expandidos.
find
. find ... -exec mv -t ../../dst/ {} \;
chamaria mv
uma vez por arquivo; find ... -exec mv -t ../../dest {} +
seria muito mais rápido, copiando o máximo de arquivos por chamada possível, mas ainda não tão rápido quanto mover o próprio diretório, conforme explicado por dadexix86 .