TL; DR : não
Para uma quantidade menor de arquivos, você não precisaria de find
, mas, mesmo neste caso simplificado e menor, se você apenas
mv *.jpg ../../dst/
levará mais tempo do que mover o diretório inteiro de uma só vez.
Por quê? O objetivo é entender o que o mv
faz.
Resumidamente, mv
move um número (que identifica um diretório ou um arquivo) de um inode (o diretório que o contém) para outro, e esses índices são atualizados no diário do sistema de arquivos ou no FAT (se o sistema de arquivos for implementado de tal forma).
Se a origem e o destino estiverem no mesmo sistema de arquivos, não haverá movimento real dos dados, apenas mudará a posição, o ponto em que eles estão anexados.
Então, quando você está no diretório mv
um , você está fazendo esta operação uma vez .
Mas quando você move 1 milhão arquivos, você está fazendo essa operação 1 milhão de vezes .
Para dar um exemplo prático, você tem uma árvore com muitos ramos. Em particular, há um nó ao qual 1 milhão de ramificações estão anexadas. Para cortar esses ramos e movê-los para outro lugar, você pode cortar cada um deles, então você faz 1 milhão de cortes, ou corta um pouco antes do nó, fazendo apenas um corte (essa é a diferença entre mover os arquivos e o diretório).