De longe, a maneira mais fácil é usar o zsh. Para mover os primeiros 3000 arquivos no diretório atual para /other/directory
:
mv *([1,3000]) /other/directory
Se você criou alguns subdiretórios que deseja excluir desse comando:
setopt extended_glob
mv *([1,3000])~(exclude-me|exclude-me-too) /other/directory
Para mover arquivos com mais de 3 meses (o primeiro m
é para "tempo de modificação" e o segundo m
significa meses; partes fracionárias são ignoradas, então +2
significa ≥3):
mv *(mm+2) /other/directory
Se você preferir usar comandos complicados do que iniciar um shell diferente, estes ainda são razoáveis com o GNU find:
find -mindepth 1 -maxdepth 1 -print0 | head -n 3000 | xargs -0 -i mv {} /other/directory
find -mindepth 1 -maxdepth 1 -mtime +91 -print0 | xargs -0 -i mv {} /other/directory