7. Архивация файлов из подкаталогов
Очень удобной возможностью программ PKZIP и ARJ является архивация (упаковка) файлов из подкаталогов указанного каталога. Эта возможность задается с помощью указания следующих режимов:
PKZIP –режим –rp
ARJ — режим -r
При указании этих режимов программы архивации ищут архивируемые файлы не только в каталогах, указанных в команде, но и во всех подкаталогах этих каталогов. Здесь под термином «все подкаталоги» понимаются не только подкаталоги, непосредственно входящие в указанные каталоги (т.е. подкаталоги первого уровня), но и подкаталоги этих подкаталогов (т.е. подкаталоги второго уровня), и т.д., т.е. подкаталоги всех уровней вложенности. При этом в архиве сохраняется информация о пути к архивированным файлам.
Извлечение файлов в подкаталоги.
При извлечении файлов из архива можно выводить файлы не в один каталог, а в соответствующие подкаталоги указанного в команде каталога (если такие подкаталоги не существуют, то они создаются). Для этого при извлечении файлов необходимо для программы ARJ использовать команду X (а не Е), а для программы PKUNZIP — режим -D.
Замечание. Программы PKZIP и ARJ по-разному записывают в архиве пути к архивируемым файлам, если в команде запрошена архивация файлов не из текущего каталога. Например, при выполнении команд
pkzip –rp a:archive c:\doc\*.*
arj -r a:archive c:\doc\*.*
для файла C:\DOC\TEST.TXT программами архивации будут запомнены следующие пути:
PKZIP — TEST.TXT
ARJ — DOC\TEST.TXT
Чтобы не запутаться, целесообразно при архивации файлов из всех подкаталогов некоторого каталога сделать этот каталог текущим.
Пусть, например, дерево каталогов на диске С: имеет следующий вид:
Если текущий каталог - DOC\, то при выполнении команд
txt txt
arj u -r a:doc *.txt
в архивы A:DOC.ZIP и A:DOC.ARJ будут добавляться файлы с расширением имени .ТХТ из каталогов:
С:\DOC
C:\DOC\LETTERS
C:\DOC\PAPERS
С:\DOC\PAPERS\ARCHIVE
С:\DOC\PAPERS\DRAFT
При этом в архивные файлы будут записываться пути к исходным файлам от каталога C:\DOC.
Если выполнить любую из команд:
pkunzip
arj e
arj e а:\archive с:\user\
то все файлы из каталогов С:\DOC, С:\DOC\LETTERS, С:\DOC\PAPERS, C:\DOC\PAPERS\ARCHIVE и C:\DOC\PAPERS\DRAFT будут извлечены в каталог C:\USER. Таким образом, файлы из разных каталогов будут «свалены в одну кучу». Заметим, что если бы каталога C:\USER не существовало, программа PKUNZIP отказалась бы работать, а программа ARJ выдала бы запрос на создание нового каталога.
А если выполнить любую из команд:
pkunzip –d а:\archive c:\work\
arj x а:\archive c:\work\
то на диске С: будет создан каталог C:\WORK и сохраненные в архиве файлы будут извлечены в соответствующие подкаталоги этого каталога. Таким образом, структура каталогов на диске С: будет следующей
В каталоге WORK будут находиться копии файлов из каталога DOC, а в подкаталогах LETTERS, PAPERS, ARCHIVE и DRAFT каталога WORK — копии файлов из соответствующих подкаталогов каталога DOC.
Замечание. Программа ARJ перед созданием каждого каталога выводит запрос «Create directory? [Y/N/A/Q]». На этот вопрос целесообразно ответить (A) — (Always, т.е. всегда). А еще лучше при вызове программы ARJ задать режим -JYC, чтобы этот запрос вообще не выводился.
