Рейтинг:0

Разделите файлы на несколько подпапок и заархивируйте каждую подпапку

флаг mx

Я использую Убунту 18.04.5 ЛТС.

Я создал следующий скрипт для разделения файлов в папке на разные подпапки:

#!/бин/баш

dir_size=850
dir_name="изображения"
n=$((`find . -maxdepth 1 -type f | wc -l`/$dir_size+1))
для i в `seq 1 $n`;
делать
    mkdir -p "$dir_name$i";
    найти . -maxdepth 1 -тип f | голова -n $dir_size | xargs -i mv "{}" "$dir_name$i"
сделано

Тем не менее, я хотел бы молния каждую подпапку после создания, так что я получаю только заархивированные подпапки в моем последнем каталоге.

Любые предложения, как это сделать?

Я ценю ваши ответы!

vanadium avatar
флаг cn
`"$dir_name$i"` — папка, которую вы создали. Так что же мешает вам, находясь в цикле `do...done`, впоследствии заархивировать папку?
bac0n avatar
флаг cn
Есть ли какая-то особая причина для использования `zip`?
Рейтинг:1
флаг cn

Вы можете использовать цикл for для получения фиксированного количества элементов. а будет увеличиваться с увеличением количества с и б каждой итерацией.

#!/бин/баш

mapfile -td '' < <( \
    найти -maxdepth 1 -тип f ! -name '*.zip' -print0 \
)
((${#MAPFILE} == 0)) && выход 1

for ((a=0, b=0, c=850; a<${#MAPFILE[@]}; a+=c, b++)); делать
    mkdir изображения$b && \
    mv -t $_ "${MAPFILE[@]:$a:$c}" && zip -mTr images$b images$b
сделано

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.