4. Добавление файлов в архив
Процесс добавления новых объектов (файлов) в уже существующий архив аналогичен процессу архивации файлов в новый архив.
Выделите в окне WinRAR объекты, которые необходимо добавить в архив, и щелкните по кнопке Добавить на панели инструментов. В появившемся окне диалога (рис. 11), в поле Архив введите имя архива, в который вы хотите добавить объекты (для этого можете также использовать кнопку Обзор и следующее окно диалога). Щелкните по кнопке ОК окна диалога, после чего к списку указанного вами архива будут добавлены новые объекты.
Рис. 11. Окнодиалога Имя и параметры Архива
5. Многотомные, самораспаковывающиеся и непрерывные архивы
При создании средствами WinRAR многотомного архива необходимо помнить, что первый том имеет обычное расширение rar, а следующие обозначаются r00, r01, r02 и т. д. Чтобы создать многотомный архив придерживайтесь последовательности действий, описанных в предыдущем пункте, с одним отличием: в окне диалога Имя и параметры архива (рис.
Создав многотомный архив вы уже не сможете изменять его, напрмер, добавлять или извлекать файлы. Любые изменения требуют повторного создания многотомного архива. Удобство архиватора WinRAR при создании многотомного архива состоит в том, что архивные файлы, разбитые на «тома», можно создать сначала на жестком диске. Затем эти файлы в любой момент можно скопировать на дискету (WinZip этой возможности не дает).
Для создания самораспаковывающегося архива действуйте по схеме, описанной в пункте «Архивация файлов», но в окне диалога Имя и параметры архива (рис. 11) установите флажок Создать SFX-архив и дальше щелкните по кнпке ОК.
Программа WinRAR позволяет так же создавать непрерывные архивы. Для этого в окне диалога Имя и параметры архива (рис. 11) следует установить флажок Создать непрерывный архив.
Задания и порядок выполнения работы
Создайте на рабочем столе папку с именем Test, а в нем – подпапки Texts и Pictures.
Поместите в каталог Texts не мененее 8 произвольных файлов с расширением .doc, а в папку Pictures поместите не менее 5 файлов (произвольных) с расширением .bmp. Файлы скопируйте из папки Мои документы. Если в указанной папке не будет такого количества файлов найдите их с помощью команды Пуск → Найти→ Файлы и папки… и затем скопируйте их в указанные папки.
Просмотрите размеры каталогов Test, Texts и Pictures и запишите их в тетрадь.
Работа с программой
Создайте c помощью программы WinZIP на Рабочем столе архив TextArchive.zip, содержащий архивные копии 6 любых текстовых файлов из папки Test (файлов с расширением doc).
Создайте c помощью программы WinZIP на Рабочем столе архив PictureArсhive.zip содержащий архивные копии всех файлов рисунков из папки Test.
Просмотрите размер архива PictureArсhive.zip и запишите его в тетрадь.
Просмотрите файлы, находящиеся внутри архива TextArchive.zip, без извлечения файлов из архива (выделите нужный файл и нажмите кнопку View).
- Добавьте в архив TextArchive.zip оставшиеся два файла с раширением doc из папки Test.
Просмотрите размер архива TextArchive.zip и запишите его в тетрадь.
Извлеките из архива TextArchive.zip два любых файла на рабочий стол.
Удалите распакованные вами файлы в Корзину.
Удалите из архива PictureArсhive.zip любой один файл.
Создайте на Рабочем столе архив TextAndPict.zip, поместив туда все исходные файлы из папки Test.
Просмотрите размер архива и TextAndPict.zip и
Создайте на Рабочем столе самораспаковывающийся архив TextAndPict.ехе.
Просмотрите размер файла TextAndPict.ехе и запишите его в тетрадь.
Удалите все созданные вами архивы (TextArchive.zip, PictureArсhive.zip, TextAndPict.zip , TextAndPict. ехе) в Корзину.
Работа с программой WinRAR
Создайте с помощью программы WinRAR на Рабочем столе архив TextArchive.rar, содержащий архивные копии всех файлов c расширением .doc из папки Test.
Просмотрите размер архива TextArchive.rar и запишите его в тетрадь.
Создайте с помощью программы WinRAR на Рабочем столе архив PictureArсhive.rar, содержащий архивные копии всех файлов рисунков из папки Test.
Просмотрите размер архива PictureArсhive.rar и запишите его в тетрадь.
Просмотрите файлы в архиве PictureArсhive.rar, не распаковывая их.
Извлеките из архива PictureArсhive. rar все файлы на Рабочий стол.
Удалите распакованные вами файлы в Корзину.
Создайте архив TextAndPict.rar на Рабочем столе, переместив туда все исходные файлы из папки Test.Просмотрите размер архива и TextAndPict.rar и запишите его в тетрадь.
Удалите из архива TextAndPict.rar все файлы с расширением bmp.
Создайте на Рабочем столе самораспаковывающийся архив TextAndPict.ехе.
Просмотрите размер файла TextAndPict.ехе и запишите его в тетрадь.
Создайте многотомный архив ManyVolume.rar с размером тома 10 Кб, содержащий архивные копии всех текстовых и графических файлов из папки Test.
Удалите все созданные вами каталоги и архивы с Рабочего стола в Корзину.
10
как распаковать и создать архив в Linux
По умолчанию в системах Unix/Linux включен встроенный архиватор tar, позволяющий запаковывать/распаковывать архив и выполнять много других операций с заархивированными файлами. В его функционал не входит компрессия, но он отлично работает с такими утилитами, как Gzip и BZip2 – с помощью них и выполняется сжатие файлов.
В сегодняшней статье мы подробно разберем основные функции команды tar, а также рассмотрим, как работать с архивами в Linux-системе.
Tar: основные функции и синтаксисНачнем с синтаксиса – он довольно прост. Если вы когда-либо работали в консольном окне, то вопросов возникнуть не должно. Создание нового архива выполняется следующей строчкой кода:
tar <функции> archive.tar <архивируемые файлы>
Распаковка файлов тоже выполняется просто:
tar <функции> <имя архива>
Основные опции:
- -A, —concatenate – позволяет добавить уже существующий архив к другому;
- -c, —create – создает новый архив и записывает в него файлы;
- -d – расшифровывается как -diff или -delete, где первая команда проверяет различия между архивами, вторая – удаляет данных из архива;
- -r, append – добавляет новые файлы в конец заархивированного документа;
- -t, —list – разрешает посмотреть содержимое архива, формат аналогичен
- -u, —update – обновление файлов в созданном архиве с тем же наименованием;
- -x, —extract – распаковывает файлы из заархивированного документа.
Мы также можем использовать особые параметры, относящиеся к каждой опции:
- -c dir, —directory=DIR – перед тем как выполнить операцию, директория будет изменена на dir;
- -f file, —file – выводит результат в file;
- -p, —bzip2 – сохраняет все права доступа;
- -v – расшифровывается как -verbose или -totals: выводит всю информацию о текущем процессе и показывает сведения об уже завершенном процессе.
Как мы говорили ранее, tar также хорошо взаимодействует с утилитами сжатия. Для их использования предназначены отдельные опции:
- -a, -auto-compress – выбирает программу для сжатия данных;
- -I, -use-compress-program=PROG – позволяет фильтровать архив с помощью утилиты PROG, для которой требуется использование опции -d;
- -j, -bzip2 – сжимает архив с помощью программы bzip2;
- -J, -xz – сжимает архив с помощью программы XZ;
- -Izip – сжимает архив с помощью программы Lzip;
- -Izma – сжимает архив с помощью программы Izma;
- -z, -gzip, -gunzip, -ungzip – сжимает архив с помощью программы GZIP;
- -Z, -compress, -uncompress – использование компрессии.
У команды tar есть еще много возможностей – чтобы их посмотреть, достаточно в консольном окне ввести команду tar —help. О том, как воспользоваться наиболее важными опциями и поработать с архивацией данных, мы поговорим в следующем разделе.
Комьюнити теперь в Телеграм
Подпишитесь и будьте в курсе последних IT-новостей
Подписаться
Как воспользоваться архиватором tarДля работы с архиватором будем использовать сборку Kali Linux. Данный алгоритм подойдет и для других версий Unix/Linux, поэтому можете просто следовать инструкциям, чтобы прийти к тому же результату.
Создать новый архив или распаковать уже созданный мы можем двумя путями: воспользоваться необходимыми командами через консоль либо использовать встроенный архиватор ручным способом. Давайте рассмотрим оба варианта и посмотрим, как с их помощью можно создать новый архив, посмотреть его содержимое, распаковать данные и провести их сжатие.
Архивируем файлыЧтобы добавить один или несколько файлов в архив через консольное окно, нам потребуется сначала прописать пути, чтобы система понимала, откуда брать файлы. Сделать это довольно просто: указываем в консоли путь до директории, в которой находятся файлы. В нашем случае это /home/kali/.
Для архивации вводим команду типа:
tar -cf <наименование будущего архива с расширением .tar> <имя архивируемого файла>
В результате будет создан архив в исходной папке – перейдем в нее и убедимся, что все прошло корректно:
Второй способ – ручное архивирование. Для этого выбираем файл, который нужно заархивировать, и кликаем по нему правой кнопкой мыши. В отобразившемся меню нажимаем на функцию создания архива. Далее нам потребуется указать название файла, задать ему расширение .tar и воспользоваться кнопкой архивирования файлов.
Как видите, создать tar-архив в Linux совсем не сложно. Если вам нужно заархивировать несколько документов через консоль, то просто пропишите их имена с использованием пробела.
Распаковываем tar-файлыВ данном случае нам также потребуется в консольном окне перейти в нужную директорию. Как только пути будут прописаны, можно вводить команду для разархивации:
tar -xvf archive.tar
Таким образом будут получены файлы, находящиеся в архиве. Также мы можем их достать и ручным способом – для этого достаточно кликнуть правой кнопкой мыши по файлу и нажать на «Извлечь здесь».
Как работать со сжатием файловНапоминаю, что tar не сжимает файлы, а только добавляет их в архив. Для уменьшения размера архивируемых файлов потребуется дополнительно воспользоваться такими утилитами, как bzip2 и gzip. Они хорошо взаимодействуют с tar, поэтому в консольном окне достаточно прописать несколько новых значений. В ручном режиме сжатие файлов выполняется с помощью расширения .tar. bz2 или .tar.gz.
Итак, для сжатия в bzip2 переходим через консоль в нужную директорию и прописываем следующую команду:
tar -cjvf <название нового архива с расширением .tar.bz2> <наименование файла/файлов>
Чтобы использовать gzip, другую утилиту для сжатия, вводим следующее:
tar -czvf <название нового архива с расширением .tar.gz> <наименование файла/файлов>
Для распаковки файлов такого типа используйте:
tar -xjvf <наименование архива в формате .tar.bz2>
Или:
tar -xzvf <наименование архива в формате .tar.gz>
Ручной способ аналогичен созданию обычного архива, только необходимо указать расширение .tar.bz2 либо .tar.gz.
Распаковать файлы самостоятельно тоже просто – для этого нужно кликнуть правой кнопкой по архиву и выбрать «Извлечь здесь».
Как посмотреть содержимое архиваМы можем посмотреть, что находится в архиве без его распаковки. В консоли для этого необходимо ввести команду такого типа:
tar -tf <название архива>
Обратите внимание, что под командой отобразилось название «document1» – это файл, находящийся в архиве. Если файлов несколько, то каждый будет прописан в новой строке.
Для просмотра архива без использования консоли достаточно кликнуть двойным щелчком мыши по архиву. После этого отобразится новое окно, в котором будет показан весь список файлов.
ЗаключениеСегодня мы рассмотрели основные методы архивации, распаковки и сжатия файлов с помощью команды tar. Это простой инструмент, который отлично взаимодействует с утилитами сжатия bzip2 и gzip. Надеюсь, что теперь вам будет легко работать с архивами в системе Linux. Спасибо за внимание!
zip — Добавление разархивированных файлов в заархивированную папку
спросил
Изменено 3 года, 5 месяцев назад
Просмотрено 156 тысяч раз
Я пытаюсь добавить разархивированные файлы в существующую уже заархивированную папку, скажем, new folder. zip
. Можно ли использовать zip -r новая папка.zip
после добавления к ним некоторых разархивированных файлов? Будет ли эта команда сжимать папку? Есть ли альтернатива сделать это?
1
Используйте флаг обновления: -u
Пример:
zip -ur существующий.zip моя папка
Эта команда сожмет и добавит myFolder
(и его содержимое) к существующему .zip
.
Расширенное использование:
Флаг обновления фактически сравнивает входящие файлы с существующими и либо добавляет новые файлы, либо обновляет существующие.
Таким образом, если вы хотите добавить/обновить определенный подкаталог в zip-файле, просто обновите исходный код по желанию, а затем повторно заархивируйте весь исходный код с флагом -u
. Только измененные файлы будут заархивированы.
Если у вас нет доступа к исходным файлам, вы можете разархивировать zip-файл, затем обновить нужные файлы, а затем повторно заархивировать с помощью -u
флаг. Опять же, только измененные файлы будут заархивированы.
Пример:
Исходная структура
Родительский каталог ├── файл1.txt ├── файл2.txt ├── ДетскийКаталог │ ├── файл3.txt │ ├── Журналы │ │ ├── logs1.txt │ │ ├── logs2.txt │ │ ├── logs3.txt
Обновленная исходная структура
Родительский каталог ├── файл1.txt ├── файл2.txt ├── ДетскийКаталог │ ├── файл3.txt │ ├── Журналы │ │ ├── logs1.txt │ │ ├── logs2.txt │ │ ├── logs3.txt │ │ ├── logs4.txt <-- НОВЫЙ ФАЙЛ
Использование
$ zip -ur существующий.zip ParentDir > обновление: ParentDir/ChildDir/Logs (хранится 0%) > добавление: ParentDir/ChildDir/Logs/logs4.txt (сохранено 96%)
2
Думаю, вы можете добавлять файлы с помощью этой команды:
zip -r zipfile. zip newfile.txt newfile1.txt
Параметр -r
команды zip позволяет добавлять файлы.
6
Я успешно использовал команду zip
. с опцией вырасти (-g), чтобы добавить подпапку folder1/folder2
, содержащую файлы fileA.txt
и fileB.txt
:
zip -gr folder.zip folder1/folder2
-r
означает recurse реж.
Насколько я понимаю, -g должен увеличивать zip-файлы, а не создавать новый zip-файл (это может быть полезно для очень больших zip-архивов). В случае проблем вы можете сначала попробовать создать подпапки в folder.zip с помощью (например):
zip -g папка.zip папка1 zip -g папка.zip папка2
Флаг -u работает для файлов до
zip -ur zip_to_upload.zip file_to_add.txt
С уважением
Если у вас есть много файлов в одном месте с вашим zip-архивом, и вы хотите скопировать их все в архив, вы можете сделать:
zip -ur zipfile. zip !(zipfile.zip)
Это обновляет ваш zip-файл (параметр -u
) рекурсивно (параметр -r
) со всеми найденными файлами, кроме самого zip-файла ( !
— это отрицание zip-файла)
Затем вы можете просто удалить все файлы, кроме zip-файла, следуя тому же правилу, что и выше:
rm !(zipfile.zip)
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google
Зарегистрироваться через Facebook
Зарегистрируйтесь, используя адрес электронной почты и пароль
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания, политикой конфиденциальности и политикой использования файлов cookie
gzip — Как добавить/обновить файл в существующий архив tar.
gz? Есть ли способ добавить/обновить файл в архиве tar.gz? По сути, у меня есть архив, который содержит файл по адресу /data/data/com.myapp.backup/./files/settings.txt
, и я хотел бы вытащить этот файл из архива (уже сделано) и отправить его обратно в архив после редактирования. Как я могу это сделать? Это проблематично из-за .
в пути?
- tar
- gzip
- архив
1
Чтобы извлечь файл из архива, вы можете использовать tar xzf archive.tar.gz my/path/to/file.txt
. Обратите внимание, что каталоги в пути к файлу также будут созданы. Используйте tar t
(т. е. tar tzf archive.tar.gz
), чтобы просмотреть файлы в архиве.
tar
не поддерживает обновление файлов «на месте». Однако вы можете добавлять файлы в конец архива, даже если они имеют тот же путь, что и файл, уже находящийся в архиве. В этом случае обе копии файла будут в архиве, а файл, добавленный позже, переопределит предыдущий. Для этого используется команда 9.0011 tar r (или tar u
для добавления только более новых файлов, чем архив) — это используемая команда. .
в пути не должно быть проблемой.
Но есть одна загвоздка: вы не можете добавить в сжатый архив. Итак, вам нужно будет сделать:
gunzip archive.tar.gz tar rf archive.tar data/data/com.myapp.backup/./files/settings.txt архив gzip.tar
Вероятно, это не то, что вы хотите услышать, так как это означает переписывание всего архива дважды. Если это не очень большой архив, возможно, будет лучше разархивировать его целиком, а затем заново разархивировать после редактирования. В качестве альтернативы вы можете использовать несжатый архив.
7
Формат файла tar представляет собой просто набор файлов, соединенных вместе с несколькими заголовками. Это не очень сложная работа, чтобы разобрать его, положить содержимое и собрать обратно. При этом Джандер описал, что tar как программа не имеет служебных функций для этого, и есть дополнительные сложности со сжатием, которое должно выполняться как до, так и после внесения изменений.
Однако инструменты для работы есть! Есть по крайней мере две системы, которые позволят вам выполнить петлевое монтирование сжатого tar-архива в папку, а затем внести изменения в файловую систему. Когда вы закончите, размонтируйте папку, и ваш сжатый архив готов к работе.
Первым вариантом будет проект archivemount для FUSE. Вот учебник по этому поводу. Возможно, в вашей системе уже есть FUSE, и если его нет, то в вашем дистрибутиве должен быть вариант для него.
Другой вариант — тарифы. Его проще использовать, но я слышал, что у него есть проблемы с повреждением архивов bzip2, поэтому вы можете сначала тщательно его протестировать.
4
Tar изначально предназначался для использования на лентах, поэтому «замена» файлов не предусмотрена в проекте. Тем не менее, вы можете использовать --delete
, чтобы удалить файл из исходного tar, а затем -u
, чтобы обновить tar и повторно добавить файл. Это может занять некоторое время, так как tar
необходимо реорганизовать архив внутри.
2
Для файлов tar.gz
, боюсь, что это невозможно, по моим тестам:
$ tar rvf backup.tar.gz db_bkp_today.sql tar: невозможно обновить сжатые архивы tar: ошибка неустранима: выход сейчас
Но, будучи просто ленточным архивом ( tar
), я экспериментировал с положительными результатами:
$ gzip -d backup.tar.gz $ tar uvf backup.tar db_bkp_today.sql database_bkp_today.sql $ tar резервная копия tvf.tar | грэп sql -rw-r--r-- ivanleoncz/ivanleoncz 14779319 11 мая 2020 г. 13:40 db_bkp_today.sql
Взято из man tar
:
> -r, --append Добавлять файлы в конец архива. Аргументы имеют то же значение, что и для -c (--create). > -у, --обновить Добавлять файлы, которые новее соответствующей копии в архиве. Аргументы имеют то же значение, что и опции -c и -r.
Использование -u
ведет себя так же, как использование -r
, поэтому файл был добавлен в TAR.
Практический способ, который я вижу для добавления/обновления сжатого ленточного архива (tar.gz), по иронии судьбы выглядит так:
tar uvf backup.tar db_bkp_today.sql
gzip -9резервная копия.tar
2
Вам нужен почтовый индекс. Вот где zip сияет выше tar. Сжатие на самом деле только немного лучше с gzip или bzip2, когда вы сжимаете большую структуру каталогов со всеми видами файлов в ней, то есть делаете текущую резервную копию веб-сервера.
Тестирование типичной установки WP: tar.