Tengo millones de imágenes en mi servidor de ubuntu en la nube. Cuando muevo una carpeta completa que contiene 12 millones de imágenes usando el mv
comando, sucede casi instantáneamente. Sin embargo, cuando mv
solo tomo imágenes (no la carpeta), me lleva algo de tiempo. ¿Hay alguna forma de mover todas las imágenes tan rápido como las carpetas?
Esto es lo que está sucediendo:
La carpeta src tiene 12 millones de imágenes y muevo esto a la carpeta dst usando
$ mv src ../dst
Sucede inmediatamente
Dentro de la carpeta src hago esto para mover:
find -maxdepth 1 -name '*.jpg' -exec mv -t ../../dst/ {} +
Esto lleva algo de tiempo.
¿Hay alguna manera de acelerar el segundo proceso?
dst
está en una partición mientras que ../../dst
está en otra.
{}
argumento donde los nombres de archivo se expandirían.
find
. find ... -exec mv -t ../../dst/ {} \;
llamaría mv
una vez por archivo; find ... -exec mv -t ../../dest {} +
sería mucho más rápido, copiando tantos archivos por llamada como sea posible, pero aún no tan rápido como mover el directorio en sí como lo explica dadexix86 .