Executar a função ou executar os dois comandos separadamente não faz nenhuma diferença mensurável no tempo de execução.
Meu palpite é que você executou a função, descobriu que ela estava lenta e tentou os comandos separadamente.
Se você fez isso, é provável que, na primeira vez, os dados não estivessem presentes no cache de disco, então o que você mediu foi o tempo para carregar os dados do disco. Na segunda vez, os dados já estavam no cache de disco (porque você tinha acabado de acessá-lo), então você mediu o tempo para copiar os dados na memória.
Para fazer benchmarks apropriados, você precisa iniciar todas as medições nas mesmas condições: ou você sabe que todos os dados estão no cache, ou você sabe que todos os dados precisam ser carregados do disco.
Copiar os dados e remover o original é uma maneira muito estranha de fazer isso. Execute mv
em vez disso! É instantâneo se você estiver movendo os arquivos dentro do mesmo sistema de arquivos.
Além disso, rm *
é um comando muito incomum. Se você não precisar mais de um diretório, remova o diretório: rm -r somedir
ou mv somedir ~/trash/
.