Безусловно, самый простой способ - использовать Zsh. Чтобы переместить первые 3000 файлов в текущем каталоге в /other/directory
:
mv *([1,3000]) /other/directory
Если вы создали несколько подкаталогов, которые хотите исключить из этой команды:
setopt extended_glob
mv *([1,3000])~(exclude-me|exclude-me-too) /other/directory
Чтобы переместить файлы старше 3 месяцев (первое m
означает «время модификации», а второе m
означает месяцы; дробные части игнорируются, поэтому +2
означает ≥3):
mv *(mm+2) /other/directory
Если вы предпочитаете использовать сложные команды, а не запускать другую оболочку, это все же разумные строки с 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