У меня есть папка с 200 000 изображений. Я хочу сделать следующее:
Переместить X количество изображений (50 изображений, 100 изображений, 200 изображений) из этой папки в папку Y. Каждая папка Y может быть числом (папка 1, папка 2, папка 3 ...). Конечный результат может выглядеть так:Папка 1 (имеет X количество изображений) Папка 2 (имеет X количество изображений) Папка 3 (имеет X количество изображений) Папка 4 (имеет X количество изображений )
Попробуйте этот скрипт, он должен выполнить ваш запрос, но последние X-файлы останутся в исходном каталоге
OrigDIR=~/FolderX DestDIR=~/FolderY NumberOfMovedItems=$1 SubDestDir=$2 Count=1 while [ `find $DIR -OrigDIR 1 -type f| wc -l` -gt $NumberOfMovedItems ] ; do NewSubDir=$DestDIR/${SubDestDir}${Count} mkdir $NewSubDir find $OrigDIR -maxdepth 1 -type f | head -n $NumberOfMovedItems | xargs -I {} mv {} $NewSubDir let Count++ doneИзмените путь FolderX и FolderY по своему усмотрению.
] Когда вы запускаете скрипт, вы должны указать количество элементов для перемещения и имя подкаталога
Источник
Я бы начал с создания списка
ls X > X.list
for Y in `seq 1 10` ; do mkdir $Y ; mv `head -n $(( Y * 50 )) X.list | tail -n 50` $Y ; done