Как добавлять файлы в архив частями: руководство по tar, zip, 7z и графическим программам

Не хватает места на диске? Узнайте, как легко добавлять файлы в архив порциями, не забивая память и не прерывая работу. Простые инструменты для умного резервного копирования.

Бесплатная консультация юриста

+7 (800) 301-07-30

Реклама jurik.ru

В современном мире часто возникает необходимость собрать большой набор файлов в один архив, но делать это «все сразу» бывает неудобно или даже невозможно․ Причины могут быть разными:

  • Ограниченный объём свободного места на диске;
  • Необходимость регулярно обновлять архив новыми данными;
  • Требования к резервному копированию (инкрементные бэкапы);
  • Сетевые ограничения при передаче файлов․

В этой статье мы подробно разберём, как добавлять файлы в архив частями на разных платформах и с помощью самых популярных утилит: tar, zip, 7z и графических программ․


Содержание

  1. Что значит «добавить в архив частями»?
  2. Работа с tar (Linux/Unix/macOS)
  3. Работа с zip (кроссплатформенно)
  4. Работа с 7z (7‑Zip)
  5. Графические программы
  6. Инкрементные архивы и резервные копии
  7. Лучшие практики и типичные ошибки

Что значит «добавить в архив частями»?

Термин добавление в архив частями (англ․ append to archive) подразумевает:

  • Создание архива, если он ещё не существует, и последующее добавление новых файлов или каталогов без пересоздания уже упакованных данных․
  • Возможность разделения большого архива на несколько «томов» (split) – полезно, когда размер архива превышает лимит файловой системы или требуется загрузка по частям․
  • Поддержку инкрементного (incremental) и дифференциального (differential) обновления, когда в архив попадают только изменённые файлы․

Для большинства форматов (ZIP, TAR, 7Z) такие операции реализованы штатно, однако синтаксис команд различается․


Работа с tar (Linux/Unix/macOS)

Создание базового архива

tar -cvf backup․tar /path/to/first_folder

Опции:

  • -c – создать архив;
  • -v – выводить процесс в консоль (verbose);
  • -f – имя файла архива․

Добавление новых файлов в уже существующий архив

tar -rvf backup․tar /path/to/second_folder/file․txt

Опция -r (append) позволяет «пришить» новые файлы к концу архива․ Важно помнить, что tar не поддерживает добавление в сжатый архив (․tar․gz, ․tar․bz2 и т․п․)․ Поэтому если нужен сжатый архив, сначала создаём обычный ․tar, а затем сжимаем:

# Шаг 1 – добавить файлы
tar -rvf backup․tar new_folder/

gzip -9 backup․tar # получаем backup․tar․gz

Инкрементные архивы с tar

Для создания инкрементных бэкапов удобно использовать опцию —listed-incremental (или её короткую форму -g)․

# Первый (полный) бэкап
tar -cvpf full_backup․tar -g snapshot․file /important/data

tar -cvpf inc_backup_01․tar -g snapshot․file /important/data

Файл snapshot․file хранит метаданные о предыдущем состоянии и позволяет tar определить, какие файлы изменились․

Разделение (split) большого архива на части

tar -cvf ⎼ /big/data | split -b 2G ⎼ backup_part_

Здесь tar -cvf - выводит архив в stdout, а split разбивает поток на файлы по 2 ГБ с префиксом backup_part_․ Для восстановления:

cat backup_part_* | tar -xvf -

Работа с zip (кроссплатформенно)

Создание и добавление файлов

Команда zip умеет как создавать архив, так и добавлять в него новые файлы без пересборки:

# Создать архив
zip -r archive․zip /first_folder

zip -r archive․zip /second_folder

Опция -r (recursive) рекурсивно упаковывает каталоги․ Если архив уже существует, zip просто добавит новые элементы․

Добавление файлов без пересжатия (store)

Если нужно добавить файлы без их повторного сжатия (например, уже сжатые файлы), используем -0 (store):

zip -0 archive․zip large_video․mp4

Инкрементный режим

Для обновления только изменённых файлов удобно применять опцию -u (update):

zip -ru archive․zip /data/to/backup

Команда проверит даты изменения файлов и заменит только те, которые новее․

Разделение ZIP‑архива на тома

Утилита zip поддерживает создание многотомных архивов через параметр -s (split size):

zip -r -s 1g archive_split․zip /big_folder

Получится набор файлов archive_split․z01, archive_split․z02, … и финальный archive_split;zip․ Для распаковки достаточно запустить:

unzip archive_split․zip

Работа с 7z (7‑Zip)

Основные команды

# Создать архив
7z a archive․7z /first_folder

7z a archive․7z /second_folder/file․txt

Команда a (add) автоматически добавляет файлы, если архив уже существует․

Инкрементный (обновляющий) режим

Для обновления только изменённых файлов используем параметр -u:

7z u archive․7z /data/to/backup

Создание многотомных архивов

7z a -v2g -mx=9 archive_multi․7z /big_folder

Опция -v2g разбивает архив на тома по 2 ГБ, -mx=9 задаёт максимальный уровень сжатия․ Файлы получатся как archive_multi․7z․001, archive_multi․7z․002 и т․д․

Добавление в уже разбитый архив

Если архив уже разбит, новые файлы можно добавить так же, как и в обычный архив:

7z a archive_multi․7z /new_data

7‑Zip автоматически перераспределит данные по томам, сохранив их размер․


Графические программы

Не все пользователи комфортно работают в терминале․ Ниже перечислены популярные GUI‑утилиты, поддерживающие добавление в архив частями:

  • WinRAR – позволяет в диалоговом окне выбрать «Добавить в архив», указать «Разделить на тома» и в дальнейшем нажимать «Добавить файлы»․
  • 7‑Zip (Windows, Linux через p7zip) – в контекстном меню файлов есть пункт «Добавить к архиву», где можно задать размер тома․
  • PeaZip – открытый кроссплатформенный архиватор с поддержкой почти всех форматов и опций «инкрементное добавление»․
  • Keka (macOS) – простое приложение, позволяющее добавлять новые файлы в существующий ․zip или ․7z архив․

Во всех этих программах процесс выглядит одинаково:

  1. Открыть существующий архив․
  2. Перетащить новые файлы в окно программы или воспользоваться кнопкой «Добавить»․
  3. Подтвердить действие – программа сама обновит архив без полной пересборки․

Инкрементные архивы и резервные копии

Если задача – регулярное резервное копирование, лучше использовать специальные инструменты, которые автоматически создают инкрементные архивы:

  • rsync + tar – скрипт копирует изменённые файлы в отдельный каталог, а затем упаковывает их․
  • Duplicity – делает зашифрованные инкрементные бэкапы в облако, используя gpg и tar․
  • Bacula, Restic, Vorta – профессиональные решения с поддержкой дедупликации․

Пример простого скрипта на Bash, создающего ежедневный инкрементный архив:

#!/bin/bash
SRC="/home/user/data"
DEST="/backup"
DATE=$(date +%Y-%m-%d)
SNAPSHOT="${DEST}/snapshot․snar"

if [ $(date +%u) -eq 1 ]; then
 tar -cvpf "${DEST}/full_${DATE}․tar" -g "$SNAPSHOT" "$SRC"
else
 tar -cvpf "${DEST}/inc_${DATE}․tar" -g "$SNAPSHOT" "$SRC"
fi

Скрипт использует один файл‑снимок snapshot․snar, благодаря чему каждый последующий архив содержит только изменения․


Лучшие практики и типичные ошибки

Планируйте структуру архива заранее

  • Если планируется частое добавление, лучше использовать форматы, поддерживающие многотомность (zip, 7z)․
  • Не смешивайте сжатые и несжатые файлы в tar․gz – это усложняет последующее добавление․

Не забывайте про проверку целостности

После каждого добавления рекомендуется проверять архив:

# tar
tar -tvf archive․tar

zip -T archive․zip

7z t archive․7z

Храните метаданные инкрементных бэкапов

Файлы‑снимки (snapshot․snar, ․tar․gz с опцией --listed-incremental) необходимо сохранять в надёжном месте, иначе последующие инкременты будут недоступны․

Остерегайтесь «перезаписи» архива

Команды tar -c и zip -r при указании уже существующего имени файла могут перезаписать архив․ Всегда проверяйте, что используете -a (append) или -u (update), если хотите добавить․

Учтите ограничения файловой системы

Некоторые файловые системы (FAT32, exFAT) ограничивают размер отдельного файла (4 ГБ для FAT32)․ В таких случаях обязательно разбивайте архив на тома․


Добавление файлов в архив частями – это удобный и часто необходимый процесс, который позволяет экономить место, ускорять резервное копирование и обходить ограничения сетей и файловых систем․ В зависимости от ваших задач вы можете выбрать:

  • Классический tar для Unix‑подобных систем (особенно если нужен простой потоковый архив)․
  • Универсальный zip для кроссплатформенной совместимости и простоты использования․
  • Мощный 7z для максимального сжатия и гибкой многотомности․
  • Графические программы, если вы предпочитаете работать в визуальном интерфейсе․

Следуя рекомендациям из раздела Лучшие практики, вы избежите типичных ошибок и сможете поддерживать свои архивы в актуальном и надёжном состоянии․

Удачной работы с архивами!