Zip много файлов в несколько архивов

Запуск Linux. У меня есть каталог около 150 больших файлов CSV; просто делаю zip -9 на них приводит к монолитному файлу, который все еще слишком велик. Я хотел бы, чтобы он просто сжал их, может быть, в четырех или пяти zip-файлах по 30-40 CSV каждый; таким образом, последовательность или составной zip-заказ не будет проблемой, так как каждый zip независим. Там должен быть простой способ сделать это. Есть предложения?

(и да, zip является предпочтительным форматом, если это возможно)

28
задан WorldsEndless
04.04.2023 14:20 Количество просмотров материала 2883
Распечатать страницу

2 ответа

не-s переключатель достаточно? Вы можете использовать zip-s для разделения файла на файлы максимального размера, например:

"zip-s 300m <2 gb file>" производит:

file.zip (300 mb, master file)
file.001.zip (300 mb)
file.002.zip (300 mb)
file.003.zip (300 mb)
file.004.zip (300 mb)
file.005.zip (300 mb)
file.006.zip (200 mb)

затем "распаковать файл.zip " распакует все вместе.

20
отвечен ranisalt 2023-04-05 22:08

использовать split в списке входных файлов : -).

(не тестировался, я включил команды rm для очистки, берегите себя).

ls *.csv > csvfiles
split -d -l30 - csvfiles < csvfiles
for i in csvfiles[0-9][0-9]; do
  zip "$i.zip" -@ < "$i"
done

rm csvfiles
rm csvfiles[0-9][0-9]
2
отвечен sourcejedi 2023-04-06 00:25

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх