Как перемещать только определенное количество изображений из папки

У меня есть папка с 200 000 изображений. Я хочу сделать следующее:

Переместить X количество изображений (50 изображений, 100 изображений, 200 изображений) из этой папки в папку Y. Каждая папка Y может быть числом (папка 1, папка 2, папка 3 ...). Конечный результат может выглядеть так:

Папка 1 (имеет X количество изображений) Папка 2 (имеет X количество изображений) Папка 3 (имеет X количество изображений) Папка 4 (имеет X количество изображений )

1
задан 16 October 2012 в 05:41

2 ответа

Попробуйте этот скрипт, он должен выполнить ваш запрос, но последние 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 по своему усмотрению.

] Когда вы запускаете скрипт, вы должны указать количество элементов для перемещения и имя подкаталога

Источник

1
ответ дан 25 May 2018 в 05:30
  • 1
    Скрипт как есть, не работает. Уже добавлены $ 1 и $ 2. Протестировал сценарий, который вы упомянули в ссылке, и что он работает. Если вы можете, отредактируйте свой ответ, чтобы исправить сценарий. – Luis Alvarado♦ 18 October 2012 в 00:17

Я бы начал с создания списка

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
0
ответ дан 25 May 2018 в 05:30

Другие вопросы по тегам:

Похожие вопросы: