1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906 |
- #!/bin/bash
- fZipOptionsA()
- {
- trap 'echo -en "\ec"; stty sane; exit' SIGINT
- aa=0
- A(){ for b in $(seq 0 30);do E${b};done; }
- B()
- {
- local c
- IFS= read -s -n1 c 2>/dev/null >&2
- if [[ $c = $(echo -en "\e") ]]; then
- read -s -n1 c 2>/dev/null >&2
- if [[ $c = \[ ]]; then
- read -s -n1 c 2>/dev/null >&2
- case $c in
- A) echo d ;;
- B) echo e ;;
- C) echo f ;;
- D) echo g ;;
- esac
- fi
- elif [[ "$c" == "$(echo -en \\x0A)" ]]; then
- echo enter
- fi
- }
- C()
- {
- if [[ $i == d ]];then ((aa--));fi
- if [[ $i == e ]];then ((aa++));fi
- if [[ $aa -lt 0 ]];then aa=30;fi
- if [[ $aa -gt 30 ]];then aa=0;fi;
- }
- D()
- {
- j1=$((aa+1)); k1=$((aa-1))
- if [[ $k1 -lt 0 ]];then k1=30;fi
- if [[ $j1 -gt 30 ]];then j1=0;fi
- if [[ $aa -lt $aa ]];then echo -en "\e[0m";E$k1;else echo -en "\e[0m";E$j1;fi
- if [[ $j1 -eq 0 ]] || [ $k1 -eq 30 ];then
- echo -en "\e[0m" ; E$k1; E$j1;fi;echo -en "\e[0m";E$k1;E$j1;
- }
- TXa()
- {
- for (( a=2; a<=35; a++ ))
- do
- echo -e "\e[${a};1H\e[34m\xE2\x94\x82 \xE2\x94\x82\e[0m"
- done
- echo -en "\e[1;1H\e[34m┌────────────────────────────────────────────────────────────────────────────────┐\e[0m";
- echo -en "\e[2;2H\e[36m Options\e[0m \e[2m Параметры, Опции\e[0m";
- echo -en "\e[3;1H\e[34m├────────────────────────────────────────────────────────────────────────────────┤\e[0m";
- echo -en "\e[34;1H\e[34m├─ \xE2\x86\x91 Up ───── \xE2\x86\x93 Down ──── \xe2\x86\xb2 Select Enter ────────────────────────────────────────┤\e[0m";
- echo -en "\e[36;1H\e[34m└────────────────────────────────────────────────────────────────────────────────┘\e[0m";
- }
- E0(){ echo -en "\e[4;2H Системы, использующие EBCDIC Преобразование файла в формат ASCII \e[32m -a --ascii \e[0m";}
- E1(){ echo -en "\e[5;2H Настроить самораспаковывающийся исполняемый архив \e[32m -A --adjust-sfx \e[0m";}
- E2(){ echo -en "\e[6;2H Oчистите биты архива обрабатываемых файлов \e[32m -AC --archive-clear \e[0m";}
- E3(){ echo -en "\e[7;2H [WIN32] Включать только файлы с установленным битом архива\e[32m -AS --archive-set \e[0m";}
- E4(){ echo -en "\e[8;2H [VM/CMS и MVS] принудительно считывают файл в двоичном виде \e[32m -B --binary \e[0m";}
- E5(){ echo -en "\e[9;2H [TANDEM] задайте параметры форматирования Edit/Enscribe с n \e[32m -Bn \e[0m";}
- E6(){ echo -en "\e[10;2H Используйте указанный путь временного zip-архива \e[32m -b path --temp-path path \e[0m";}
- E7(){ echo -en "\e[11;2H Добавьте однострочные комментарии для каждого файла \e[32m -c --entry-comments \e[0m";}
- E8(){ echo -en "\e[12;2H [VMS] Сохранить все дела на VMS \e[32m -C --preserve-case \e[0m";}
- E9(){ echo -en "\e[13;2H [VMS] Сохранить случай ODS2 на VMS \e[32m -C2 --preserve-case-2 \e[0m";}
- E10(){ echo -en "\e[14;2H Сохранить случай ODS5 на VMS \e[32m -C5 --preserve-case-5 \e[0m";}
- E11(){ echo -en "\e[15;2H Удалить (delete) записи из zip-архива \e[32m -d --delete \e[0m";}
- E12(){ echo -en "\e[16;2H Отображение текущих счетчиков байтов \e[32m -db --display-bytes \e[0m";}
- E13(){ echo -en "\e[17;2H Отображение текущего количества архивированных записей \e[32m -dc --display-counts \e[0m";}
- E14(){ echo -en "\e[18;2H Отображать точки, пока каждая запись заархивирована \e[32m -dd --display-dots \e[0m";}
- E15(){ echo -en "\e[19;2H Включать в архив только data-fork файлов \e[32m -df --datafork \e[0m";}
- E16(){ echo -en "\e[20;2H Отображать точки прогресса для архива \e[32m -dg --display-globaldots \e[0m";}
- E17(){ echo -en "\e[21;2H Установите количество обрабатываемого файла \e[32m -ds size --dot-size size \e[0m";}
- E18(){ echo -en "\e[22;2H Отображение несжатого размера каждой записи \e[32m -du --display-usize \e[0m";}
- E19(){ echo -en "\e[23;2H Отображение номера тома (диска) \e[32m -dv --display-volume \e[0m";}
- E20(){ echo -en "\e[24;2H Не создавайте записи в zip-архиве для каталогов \e[32m -D --no-dir-entries \e[0m";}
- E21(){ echo -en "\e[25;2H Создайте архив, содержащий новые и измененные файлы\e[32m -DF --difference-archive \e[0m";}
- E22(){ echo -en "\e[26;2H Зашифруйте содержимое zip-архива \e[32m -e --encrypt \e[0m";}
- E23(){ echo -en "\e[27;2H Используйте расширенный атрибут .LONGNAME \e[32m -E --longnames \e[0m";}
- E24(){ echo -en "\e[28;2H Заменить (освежить) существующую запись в zip-архиве \e[32m -f --freshen \e[0m";}
- E25(){ echo -en "\e[29;2H Исправьте zip-архив \e[32m -F --fix -FF --fixfix \e[0m";}
- E26(){ echo -en "\e[30;2H Обычно zip пропускает чтение всех обнаруженных FIFO \e[32m -FI --fifo \e[0m";}
- E27(){ echo -en "\e[31;2H Синхронизируйте содержимое архива с файлами в ОС \e[32m -FS --filesync \e[0m";}
- E28(){ echo -en "\e[32;2H Расширить (дополнить) указанный zip-архив вместо создания нового \e[32m -g --grow \e[0m";}
- E29(){ echo -en "\e[33;2H Отображение справочной информации zip \e[32m -h -? --help \e[0m";}
- E30(){ echo -en "\e[35;2H \e[34m Exit \e[0m";}
- INI(){ echo -en "\ec" ;stty sane;TXa;A; };INI
- while [[ "$l1" != " " ]]; do case $aa in
- 0)D;echo -en "\e[1;37m"; (E0);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- [Системы, использующие EBCDIC] Преобразование файла в формат ASCII
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 1)D;echo -en "\e[1;37m"; (E1);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- Настроить самораспаковывающийся исполняемый архив.
- Самораспаковывающийся исполняемый архив создается путем добавления заглушки SFX
- к существующему архиву. Параметр -A указывает zip настроить смещения записей,
- хранящиеся в архиве, чтобы учесть эти данные \"preamble\"
- Примечание: самораспаковывающиеся архивы для Amiga — это особый случай.
- В настоящее время только порт zip для Amiga может настраивать или обновлять их,
- не повреждая их. -J можно использовать для удаления заглушки SFX,
- если необходимо выполнить другие обновления.
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 2)D;echo -en "\e[1;37m"; (E2);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- [WIN32] После того, как архив создан (и проверен, если используется -T,
- что рекомендуется), очистите биты архива обрабатываемых файлов.
- ВНИМАНИЕ: Как только биты очищены, они очищаются. Вы можете использовать
- параметр -sf show files для сохранения списка обработанных файлов на случай,
- если операцию архивирования придется повторить. Также рассмотрите возможность
- использования параметра -MM must match. Не забудьте проверить -DF как,
- возможно, лучший способ сделать инкрементное резервное копирование.
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 3)D;echo -en "\e[1;37m"; (E3);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- [WIN32] Включать только файлы с установленным битом архива.
- Каталоги не сохраняются при использовании -AS, хотя по умолчанию пути записей,
- включая каталоги, сохраняются как обычно и могут использоваться большинством
- распаковщиков для воссоздания каталогов. Архивный бит устанавливается операционной
- системой при изменении файла, и при использовании с параметром -AC параметр -AS
- может обеспечить возможность инкрементного резервного копирования. Однако другие
- приложения могут изменить бит архива, и это может быть ненадежным индикатором
- того, какие файлы были изменены с момента последней операции архивирования.
- Альтернативные способы создания инкрементных резервных копий включают
- использование -t для использования дат файлов, хотя это не позволит поймать старые
- файлы, скопированные в архивируемые каталоги и -DF для создания разностного архива
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 4)D;echo -en "\e[1;37m"; (E4);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- [VM/CMS и MVS] принудительно считывают файл в двоичном виде
- (по умолчанию это текст).
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 5)D;echo -en "\e[1;37m"; (E5);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- [TANDEM] задайте параметры форматирования Edit/Enscribe с n, определенным как
- \e[32m bit 0:\e[0m не добавлять разделитель (Edit/Enscribe)
- \e[32m bit 1:\e[0m использовать LF вместо CR/LF в качестве разделителя (Edit/Enscribe)
- \e[32m bit 2:\e[0m запись заполнения пробела до максимальной длины записи (Enscribe)
- \e[32m bit 3:\e[0m Обрезать конечный пробел (Enscribe)
- \e[32m bit 8:\e[0m Force 30K (Expand) большое чтение для неструктурированных файлов
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 6)D;echo -en "\e[1;37m"; (E6);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- Используйте указанный путь для временного zip-архива. Например:
- \e[32m zip -b /tmp stuff *\e[0m
- поместит временный zip-архив в каталог /tmp, скопировав stuff.zip в текущий
- каталог, когда закончите. Этот параметр полезен при обновлении существующего
- архива, когда в файловой системе, содержащей этот старый архив, недостаточно места
- для одновременного хранения старого и нового архивов. В некоторых случаях это
- также может быть полезно при потоковой передаче, чтобы избежать необходимости в
- дескрипторах данных. Обратите внимание, что использование этого параметра может
- потребовать от zip дополнительного времени для копирования файла архива
- в целевую файловую систему.
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 7)D;echo -en "\e[1;37m"; (E7);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- Добавьте однострочные комментарии для каждого файла.
- Операции с файлами (добавление, обновление) выполняются в первую очередь, а затем
- пользователю предлагается ввести однострочный комментарий для каждого файла.
- Введите комментарий, а затем нажмите Enter
- или просто return, чтобы не комментировать.
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 8)D;echo -en "\e[1;37m"; (E8);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- [VMS] Сохранить все дела на VMS. Отрицание этой опции (-C-) в нижнем регистре.
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 9)D;echo -en "\e[1;37m"; (E9);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- [VMS] Сохранить случай ODS2 на VMS.
- Отрицание этой опции (-C2-) в нижнем регистре.
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 10)D;echo -en "\e[1;37m";(E10);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- [VMS] Сохранить случай ODS5 на VMS.
- Отрицание этой опции (-C5-) в нижнем регистре.
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 11)D;echo -en "\e[1;37m";(E11);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- Удалить (delete) записи из zip-архива. Например:
- \e[32m zip -d foo foo/tom/junk foo/harry/\\* \\*.o\\e[0m
- удалит запись foo/tom/junk, все файлы, начинающиеся с foo/harry/, и все файлы,
- заканчивающиеся на .o (в любом пути). Обратите внимание, что расширение пути к
- оболочке было запрещено с помощью обратной косой черты, поэтому zip может видеть
- звездочки, что позволяет zip сопоставлять содержимое zip-архива, а не содержимое
- текущего каталога. (Обратная косая черта не используется на платформах на основе
- MSDOS.) Также можно использовать кавычки, чтобы избежать звездочек, как в
- \e[32m zip -d foo foo/tom/junk \"foo/harry/*\" \"*.o\"\e[0m
- Отсутствие экранирования звездочек в системе, где оболочка расширяет
- подстановочные знаки, может привести к тому, что звездочки будут преобразованы в
- список файлов в текущем каталоге, и этот список будет использоваться для удаления
- записей из архива. В MSDOS параметр -d чувствителен к регистру, если он
- соответствует именам в zip-архиве. Для этого требуется, чтобы имена файлов
- вводились в верхнем регистре, если они были заархивированы с помощью PKZIP в
- системе MSDOS. (Мы рассматривали возможность сделать это значение нечувствительным
- к регистру в системах, где пути были нечувствительны к регистру, но возможно, что
- архив получен из системы, где регистр имеет значение, и архив может включать как
- Bar, так и bar как отдельные файлы в архиве.)
- Но см. новое опция -ic игнорировать регистр в архиве.
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 12)D;echo -en "\e[1;37m";(E12);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- Отображение текущих счетчиков байтов,
- показывающих заархивированные и оставшиеся байты.
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 13)D;echo -en "\e[1;37m";(E13);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- Отображение текущего количества заархивированных записей и записей,
- которые нужно удалить.
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 14)D;echo -en "\e[1;37m";(E14);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- Отображать точки, пока каждая запись заархивирована (кроме портов, у которых есть
- собственный индикатор выполнения). См. -ds ниже для установки размера точки.
- По умолчанию точка ставится через каждые 10 МБ обрабатываемого входного файла.
- Опция -v также отображает точки, ранее с гораздо большей скоростью, чем эта, но
- теперь -v также по умолчанию равна 10 МБ, и эта скорость также контролируется -ds
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 15)D;echo -en "\e[1;37m";(E15);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- [MacOS] Включать в архив только data-fork файлов, заархивированных в zip.
- Хорошо подходит для экспорта файлов в иностранные операционные системы.
- Вилки ресурсов будут игнорироваться вообще.
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 16)D;echo -en "\e[1;37m";(E16);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- Отображать точки прогресса для архива, а не для каждого файла. Команда:
- \e[32m zip -qdgds 10m\e[0m
- отключит большую часть вывода, кроме точек через каждые 10 МБ.
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 17)D;echo -en "\e[1;37m";(E17);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- Установите количество обрабатываемого входного файла для каждой отображаемой
- точки. См. -dd, чтобы включить отображение точек. Установка этого параметра
- подразумевает -dd.
- Размер указывается в формате nm, где n — число, а m — множитель.
- В настоящее время m может быть k (КБ), m (МБ), g (ГБ) или t (ТБ), поэтому,
- если n равно 100, а m равно k, размер будет 100k, что составляет 100 КБ.
- По умолчанию 10 МБ.
- Параметр -v также отображает точки и теперь по умолчанию также равен 10 МБ.
- Эта скорость также контролируется этой опцией. Размер 0 отключает точки.
- Этот параметр не управляет точками в сообщении «Сканирование файлов»,
- когда zip-сканирует входные файлы. Размер точки для этого фиксирован
- и составляет 2 секунды или фиксированное количество записей,
- в зависимости от того, что больше.
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 18)D;echo -en "\e[1;37m";(E18);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- Отображение несжатого размера каждой записи.
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 19)D;echo -en "\e[1;37m";(E19);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- Отображение номера тома (диска), с которого считывается каждая запись,
- если читается существующий архив и на который записывается.
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 20)D;echo -en "\e[1;37m";(E20);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- Не создавайте записи в zip-архиве для каталогов. Записи каталога создаются
- по умолчанию, чтобы их атрибуты можно было сохранить в zip-архиве.
- Переменную среды ZIPOPT можно использовать для изменения параметров по умолчанию.
- Например под Unix с sh:
- \e[32m ZIPOPT=\"-D\"; export ZIPOPT\e[0m
- (Переменная ZIPOPT может использоваться для любой опции, включая -i и -x с
- использованием нового формата опции, описанного ниже, и может включать несколько
- опций.) Параметр -D является сокращением для -x \"*/\", но последний ранее
- не может быть установлен по умолчанию в переменной среды ZIPOPT, поскольку
- содержимое ZIPOPT вставляется в начале командной строки, а список файлов должен
- заканчиваться в конце строки.
- Эта версия zip допускает опции -x и -i в ZIPOPT, если форма:
- \e[32m -x file file ... @\e[0m
- используется, где @ (аргумент, который является просто @) завершает список.
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 21)D;echo -en "\e[1;37m";(E21);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- Создайте архив, содержащий все новые и измененные файлы с момента создания
- исходного архива. Чтобы это работало, список входных файлов и текущий каталог
- должны быть такими же, как и во время исходной операции zip.
- Например, если существующий архив был создан с помощью
- \e[32m zip -r foofull\e[0m
- из каталога bar, затем команда:\e[32m zip -r foofull\e[0m -DF --out foonew
- также из каталога bar создает архив foonew только с файлами, не входящими в
- foofull, и файлами, в которых размер или время файла не соответствуют файлам
- в foofull. Обратите внимание, что переменная среды часового пояса TZ должна быть
- установлена в соответствии с местным часовым поясом, чтобы эта опция работала
- правильно. Изменение часового пояса с момента создания исходного архива может
- привести к несоответствию времени и включению всех файлов. Возможным подходом к
- резервному копированию каталога может быть создание обычного архива содержимого
- каталога в качестве полной резервной копии, а затем использование
- этого параметра для создания добавочных резервных копий.
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 22)D;echo -en "\e[1;37m";(E22);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- Создание защищенного паролем ZIP-файла
- Если у вас есть конфиденциальная информация, которую необходимо сохранить в архиве,
- вы можете зашифровать ее, используя параметр -e:
- \e[32m zip -e archivename.zip directory_name\e[0m
- Вам будет предложено ввести и подтвердить пароль архива:
- \e[2m Enter password:
- Verify password:\e[0m
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 23)D;echo -en "\e[1;37m";(E23);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- [OS/2] Используйте расширенный атрибут .LONGNAME
- (если он найден) в качестве имени файла.
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 24)D;echo -en "\e[1;37m";(E24);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- Заменить (освежить) существующую запись в zip-архиве только в том случае,
- если она была изменена позднее, чем версия, уже находящаяся в zip-архиве;
- в отличие от опции обновления (-u) это не добавит файлы,
- которых еще нет в zip-архиве. Например:\e[32m zip -f foo\e[0m
- Эту команду следует запускать из того же каталога, из которого была запущена
- исходная команда zip, поскольку пути, хранящиеся в zip-архивах, всегда
- относительные. Обратите внимание, что переменная среды часового пояса TZ должна
- быть установлена в соответствии с местным часовым поясом, чтобы параметры -f, -u и
- -o работали правильно. Причины этого довольно тонкие, но они связаны с различиями
- между временем файла в формате Unix (всегда по Гринвичу) и в большинстве других
- операционных систем (всегда по местному времени) и необходимостью их сравнения.
- Типичным значением TZ является «MET-1MEST» (среднеевропейское время с
- автоматической настройкой на «летнее время» или переход на летнее время).
- Формат — TTThhDDD, где TTT — это часовой пояс, такой как MET, hh — это разница
- между GMT и местным временем, например -1 выше, а DDD — это часовой пояс, когда
- действует летнее время. Оставьте DDD, если нет перехода на летнее время.
- Для восточного часового пояса США EST5EDT.
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 25)D;echo -en "\e[1;37m";(E25);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- Исправьте zip-архив.
- Параметр -F можно использовать, если некоторые части архива отсутствуют,
- но при этом требуется достаточно неповрежденный центральный каталог.
- Входной архив сканируется как обычно, но zip игнорирует некоторые проблемы.
- Результирующий архив должен быть действительным, но любые несогласованные
- записи будут исключены.
- При дублировании, как в -FF, архив сканируется с самого начала,
- а zip сканирует специальные подписи, чтобы определить ограничения между
- элементами архива.
- Единственный -F более надежен, если архив не слишком сильно поврежден,
- поэтому сначала попробуйте этот вариант.
- Если архив слишком поврежден или его конец обрезан, необходимо использовать -FF.
- Это изменение по сравнению с zip 2.32, где опция -F может читать усеченный архив.
- Параметр -F теперь более надежно исправляет архивы с незначительными
- повреждениями, а параметр -FF необходим для исправления архивов,
- где раньше могло быть достаточно -F.
- Ни один из вариантов не восстанавливает архивы, которые были неправильно переданы
- в режиме ascii вместо двоичного. После восстановления опция распаковки -t может
- показать, что некоторые файлы имеют неверный CRC.
- Такие файлы невозможно восстановить; вы можете удалить их из архива,
- используя опцию -d zip.
- Обратите внимание, что -FF может иметь проблемы с исправлением архивов,
- содержащих встроенный zip-архив, который был сохранен (без сжатия) в архиве, и в
- зависимости от повреждения, он может найти записи во встроенном архиве, а не в
- самом архиве. Сначала попробуйте -F, так как у него нет этой проблемы.
- Изменился формат команд исправления.
- Например, чтобы исправить поврежденный архив foo.zip:
- \e[32m zip -F foo --out foofix\e[0m
- пытается нормально читать записи, копируя хорошие записи в новый архив foofix.zip
- Если это не работает, например, когда архив усекается, или если некоторые записи,
- которые, как вы знаете, в архиве пропущены, попробуйте:
- \e[32m zip -FF foo --out foofixfix\e[0m
- и сравните получившийся архив с архивом, созданным с помощью -F.
- Параметр -FF может создать несовместимый архив.
- В зависимости от того, что повреждено, вы можете использовать опцию -F,
- чтобы исправить этот архив.
- Разделенный архив с отсутствующими разделенными файлами можно исправить
- с помощью -F, если у вас есть последний разделенный архив (файл .zip).
- Если этот файл отсутствует, вы должны использовать -FF для исправления архива,
- который предложит вам расщепления, которые у вас есть.
- В настоящее время параметры исправления не могут восстанавливать записи,
- которые имеют неверную контрольную сумму или повреждены иным образом.
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 26)D;echo -en "\e[1;37m";(E26);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- [Unix] Обычно zip пропускает чтение всех обнаруженных FIFO (именованных каналов),
- так как zip может зависнуть, если FIFO не загружается.
- Эта опция указывает zip читать содержимое любого найденного FIFO.
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 27)D;echo -en "\e[1;37m";(E27);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- Синхронизируйте содержимое архива с файлами в ОС.
- Обычно при обновлении архива добавляются новые файлы и обновляются измененные
- файлы, но файлы, которые больше не существуют в ОС, не удаляются из архива.
- Эта опция включает новый режим, который проверяет записи в архиве на соответствие
- файловой системе. Если время файла и размер файла записи совпадают с файлом ОС,
- запись копируется из старого архива, а не считывается из файловой системы и
- сжимается. Если файл ОС был изменен, запись читается и сжимается как обычно.
- Если запись в архиве не соответствует файлу в ОС, запись удаляется.
- Включение этой опции должно создавать архивы, такие же, как и новые архивы,
- но поскольку существующие записи копируются, а не сжимаются, обновление
- существующего архива с помощью -FS может быть намного быстрее, чем создание
- нового архива. Также рассмотрите возможность использования -u для обновления
- архива. Чтобы эта опция работала, архив должен обновляться из того же каталога,
- в котором он был создан, чтобы относительные пути совпадали. Если из старого
- архива копируется мало файлов, может быть быстрее создать новый архив.
- Обратите внимание, что переменная среды часового пояса TZ должна быть
- установлена в соответствии с местным часовым поясом, чтобы эта опция работала
- правильно. Изменение часового пояса с момента создания исходного архива может
- привести к несоответствию времени и повторному сжатию всех файлов. Эта опция
- удаляет файлы из архива. Если вам нужно сохранить исходный архив, сначала
- сделайте копию архива или используйте параметр --out для вывода обновленного
- архива в новый файл. Несмотря на то, что это может быть медленнее, создание
- нового архива с новым именем архива безопаснее, позволяет избежать
- несоответствия между путями архива и ОС и предпочтительнее.
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 28)D;echo -en "\e[1;37m";(E28);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- Расширить (дополнить) указанный zip-архив вместо создания нового.
- Если эта операция не удалась, zip попытается восстановить архив в исходное
- состояние. Если восстановление не удастся, архив может быть поврежден.
- Этот параметр игнорируется, если архива нет или необходимо обновить
- или удалить хотя бы один член архива.
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 29)D;echo -en "\e[1;37m";(E29);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- Отображение справочной информации zip:
- \e[32m zip -h\e[0m
- \e[32m zip -?\e[0m
- \e[32m zip --help\e[0m
- (это также появляется, если zip запускается без аргументов).
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 30)D;echo -en "\e[1;37m";(E30);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;fZip;fi;;
- esac;C;done
- }
- #==============================================================================================
- #==============================================================================================
- fZipOptionsB()
- {
- trap 'echo -en "\ec"; stty sane; exit' SIGINT
- aa=0
- A(){ for b in $(seq 0 30);do E${b};done; }
- B()
- {
- local c
- IFS= read -s -n1 c 2>/dev/null >&2
- if [[ $c = $(echo -en "\e") ]]; then
- read -s -n1 c 2>/dev/null >&2
- if [[ $c = \[ ]]; then
- read -s -n1 c 2>/dev/null >&2
- case $c in
- A) echo d ;;
- B) echo e ;;
- C) echo f ;;
- D) echo g ;;
- esac
- fi
- elif [[ "$c" == "$(echo -en \\x0A)" ]]; then
- echo enter
- fi
- }
- C()
- {
- if [[ $i == d ]];then ((aa--));fi
- if [[ $i == e ]];then ((aa++));fi
- if [[ $aa -lt 0 ]];then aa=30;fi
- if [[ $aa -gt 30 ]];then aa=0;fi;
- }
- D()
- {
- j1=$((aa+1)); k1=$((aa-1))
- if [[ $k1 -lt 0 ]];then k1=30;fi
- if [[ $j1 -gt 30 ]];then j1=0;fi
- if [[ $aa -lt $aa ]];then echo -en "\e[0m";E$k1;else echo -en "\e[0m";E$j1;fi
- if [[ $j1 -eq 0 ]] || [ $k1 -eq 30 ];then
- echo -en "\e[0m" ; E$k1; E$j1;fi;echo -en "\e[0m";E$k1;E$j1;
- }
- TXa()
- {
- for (( a=2; a<=36; a++ ))
- do
- echo -e "\e[${a};1H\e[34m\xE2\x94\x82 \xE2\x94\x82\e[0m"
- done
- echo -en "\e[1;1H\e[34m┌────────────────────────────────────────────────────────────────────────────────┐\e[0m";
- echo -en "\e[2;2H\e[36m Options\e[0m \e[2m Параметры, Опции\e[0m";
- echo -en "\e[3;1H\e[34m├────────────────────────────────────────────────────────────────────────────────┤\e[0m";
- echo -en "\e[34;1H\e[34m├─ \xE2\x86\x91 Up ───── \xE2\x86\x93 Down ──── \xe2\x86\xb2 Select Enter ────────────────────────────────────────┤\e[0m";
- echo -en "\e[36;1H\e[34m└────────────────────────────────────────────────────────────────────────────────┘\e[0m";
- }
- E0(){ echo -en "\e[4;2H Расширенная справка, включающая дополнительные сведения \e[32m -h2 --more-help \e[0m";}
- E1(){ echo -en "\e[5;2H Включить только указанные файлы \e[32m -i files --include files \e[0m";}
- E2(){ echo -en "\e[6;2H Не сканировать файлы изображений \e[32m -I --no-image \e[0m";}
- E3(){ echo -en "\e[7;2H Игнорировать регистр при сопоставлении записей архива \e[32m -ic --ignore-case \e[0m";}
- E4(){ echo -en "\e[8;2H Сохраняйте только имя сохраненного файла \e[32m -j --junk-paths \e[0m";}
- E5(){ echo -en "\e[9;2H Запись Fullpath (+ Volname) Будет сохранен полный путь \e[32m -jj --absolute-path \e[0m";}
- E6(){ echo -en "\e[10;2H Удалите все предшествующие данные \e[32m -J --junk-sfx \e[0m";}
- E7(){ echo -en "\e[11;2H Попытаться преобразовать имена и пути в соответствии с MSDOS \e[32m -k --DOS-names \e[0m";}
- E8(){ echo -en "\e[12;2H Преобразуйте символ конца строки Unix LF согласно с MSDOS CR LF\e[32m -l --to-crlf \e[0m";}
- E9(){ echo -en "\e[13;2H Добавить к существующему файлу журнала \e[32m -la --log-append \e[0m";}
- E10(){ echo -en "\e[14;2H Откройте файл по указанному пути \e[32m -lf logfilepath --logfile-path logfilepath \e[0m";}
- E11(){ echo -en "\e[15;2H Включите в журнал информационные сообщения \e[32m -li --log-info \e[0m";}
- E12(){ echo -en "\e[16;2H Переведите конечный CR LF MSDOS в Unix LF \e[32m -ll --from-crlf \e[0m";}
- E13(){ echo -en "\e[17;2H Показать ZIP-лицензию \e[32m -L --license \e[0m";}
- E14(){ echo -en "\e[18;2H Переместите указанные файлы в zip-архив \e[32m -m --move \e[0m";}
- E15(){ echo -en "\e[19;2H Все входные шаблоны должны соответствовать одному файлу \e[32m -MM --must-match \e[0m";}
- E16(){ echo -en "\e[20;2H Не пытайтесь сжимать файлы с суффиксами \e[32m -n suffixes --suffixes suffixes \e[0m";}
- E17(){ echo -en "\e[21;2H Не выполнять внутреннюю обработку подстановочных знаков \e[32m -nw --no-wild \e[0m";}
- E18(){ echo -en "\e[22;2H Сохраняйте примечания к файлам Amiga или MacOS \e[32m -N --notes \e[0m";}
- E19(){ echo -en "\e[23;2H Установите время «последнего изменения» zip-архива \e[32m -o --latest-time \e[0m";}
- E20(){ echo -en "\e[24;2H Выведите архив в выходной файл \e[32m -O output-file --output-file output-file \e[0m";}
- E21(){ echo -en "\e[25;2H Включите относительные пути к файлам как часть имен файлов \e[32m -p --paths \e[0m";}
- E22(){ echo -en "\e[26;2H Используйте пароль для шифрования zip-файла \e[32m -P password --password password \e[0m";}
- E23(){ echo -en "\e[27;2H Бесшумный режим \e[32m -q --quiet \e[0m";}
- E24(){ echo -en "\e[28;2H Хранит информацию о файле в заголовке файла с n \e[32m -Qn --Q-flag n \e[0m";}
- E25(){ echo -en "\e[29;2H Рекурсивно перемещайтесь по структуре каталогов \e[32m -r --recurse-paths \e[0m";}
- E26(){ echo -en "\e[30;2H Рекурсивно перемещаться по структуре каталогов \e[32m -R --recurse-patterns \e[0m";}
- E27(){ echo -en "\e[31;2H До zip 3.0 сопоставление списков регулярных выражений \e[32m -RE --regex \e[0m";}
- E28(){ echo -en "\e[32;2H Включите создание разделенного архива \e[32m -s splitsize --split-size splitsize \e[0m";}
- E29(){ echo -en "\e[33;2H При разделении звоните в колокольчик \e[32m -sb --split-bell \e[0m";}
- E30(){ echo -en "\e[35;2H \e[34m Exit \e[0m";}
- INI(){ echo -en "\ec" ;stty sane;TXa;A; };INI
- while [[ "$l1" != " " ]]; do case $aa in
- 0)D;echo -en "\e[1;37m"; (E0);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- Отображение расширенной справки, включающей дополнительные сведения о формате
- командной строки, сопоставлении шаблонов и других малопонятных параметрах:
- \e[32m zip -h2\e[0m
- \e[32m zip --more-help\e[0m
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 1)D;echo -en "\e[1;37m"; (E1);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- Включить только указанные файлы, например:
- \e[32m zip -r foo . -i \\*.c\e[0m
- который будет включать только файлы, оканчивающиеся на .c
- в текущем каталоге и его подкаталогах.
- (Примечание для пользователей PKZIP: эквивалентная команда:
- \e[32m pkzip -rP foo *.c\e[0m
- PKZIP не допускает рекурсии в каталогах, отличных от текущего.)
- Обратная косая черта позволяет избежать замены имени файла оболочки, поэтому
- сопоставление имен выполняется zip на всех уровнях каталога.
- [Это для Unix и других систем, где \\ экранирует следующий символ.
- Для других систем, где оболочка не обрабатывает *, не используйте \\,
- а приведенное выше \e[32m zip -r foo . -i *.c\e[0m
- Примеры приведены для Unix, если не указано иное.] Таким образом, чтобы
- включить dir, каталог непосредственно под текущим каталогом, используйте
- \e[32m zip -r foo . -i dir/\\*\e[0m или\e[32m zip -r foo . -i \"dir/*\" \e[0m
- для сопоставления таких путей, как dir/a и dir/b/file.c [на портах без
- расширения подстановочных знаков в оболочке, таких как MSDOS и Windows
- \e[32m zip -r foo . -i dir/*\e[0m используется.]
- Обратите внимание, что в настоящее время конечный / необходим для каталогов
- (как в\e[32m zip -r foo . -i dir/\e[0m включить каталог dir).
- Форма длинного варианта первого примера:\e[32m zip -r foo . --include \\*.c\e[0m
- и делает то же самое, что и форма короткого варианта.
- Хотя синтаксис команды раньше требовал -i в конце командной строки,
- эта версия фактически разрешает -i (или --include) где угодно.
- Список файлов заканчивается следующим аргументом, начинающимся с -,
- концом командной строки или знаком конца списка @
- (аргументом, который является просто @).
- Таким образом, вышеизложенное можно представить как
- \e[32m zip -i \\*.c @ -r foo .\e[0m например.
- Между опцией и первым файлом списка должен быть пробел.
- Только для одного файла вы можете использовать форму с одним значением
- \e[32m zip -i\\*.c -r foo .\e[0m
- (без пробела между параметром и значением) или
- \e[32m zip --include=\\*.c -r foo .\e[0m
- в качестве дополнительных примеров.
- Формы с одним значением не рекомендуются, потому что они могут сбивать с толку,
- и в частности, формат -ifile может вызвать проблемы, если первая буква файла
- объединяется с i, образуя двухбуквенный параметр, начинающийся с i.
- Используйте -sc, чтобы увидеть, как будет анализироваться ваша командная строка.
- Также возможно:\e[32m zip -r foo . -i@include.lst\e[0m
- который будет включать только те файлы в текущем каталоге и его подкаталогах,
- которые соответствуют шаблонам в файле include.lst.
- Файлы для -i и -x являются шаблонами, соответствующими внутренним путям архива.
- См. -R для получения дополнительной информации о шаблонах.
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 2)D;echo -en "\e[1;37m"; (E2);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- [Acorn RISC OS] Не сканировать файлы изображений. При использовании zip не будет
- рассматривать файлы изображений (например, разделы DOS или архивы Spark при
- загрузке SparkFS) как каталоги, а будет хранить их как отдельные файлы.
- Например, если у вас загружена SparkFS, сжатие архива Spark приведет к созданию
- zip-файла, содержащего каталог (и его содержимое), а использование параметра «I»
- приведет к созданию zip-файла, содержащего архив Spark. Очевидно, что этот второй
- случай также будет получен (без опции «I»), если SparkFS не загружен.
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 3)D;echo -en "\e[1;37m"; (E3);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- [VMS, WIN32] Игнорировать регистр при сопоставлении записей архива.
- Этот параметр доступен только в системах, где регистр файлов игнорируется.
- В системах с нечувствительными к регистру файловыми системами регистр обычно
- игнорируется при сопоставлении файлов в файловой системе, но не игнорируется для
- -f (освежение), -d (удаление), -U (копирование) и подобных режимов при
- сопоставлении с архивом. записей (в настоящее время -f игнорирует регистр в VMS),
- потому что архивные записи могут быть из систем, где регистр имеет значение,
- а имена, за исключением регистра, могут существовать в архиве.
- Параметр -ic делает все совпадения нечувствительными к регистру.
- Это может привести к тому, что несколько записей архива будут соответствовать
- шаблону командной строки.
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 4)D;echo -en "\e[1;37m"; (E4);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- Сохраняйте только имя сохраненного файла
- (сбросьте путь) и не сохраняйте имена каталогов.
- По умолчанию zip сохраняет полный путь (относительно текущего каталога).
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 5)D;echo -en "\e[1;37m"; (E5);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- [MacOS] запись Fullpath (+ Volname). Будет сохранен полный путь, включая том.
- По умолчанию будет сохранен относительный путь.
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 6)D;echo -en "\e[1;37m"; (E6);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- Удалите все предшествующие данные (например, SFX-заглушку) из архива.
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 7)D;echo -en "\e[1;37m"; (E7);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- Попытаться преобразовать имена и пути в соответствии с MSDOS,
- сохранить только атрибут MSDOS (только атрибут записи пользователя из Unix)
- и пометить запись как сделанную в MSDOS (даже если это не так)
- для совместимости с PKUNZIP под MSDOS,
- которая не может обрабатывать определенные имена, например, с двумя точками.
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 8)D;echo -en "\e[1;37m"; (E8);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- Преобразуйте символ конца строки Unix LF в соглашение MSDOS CR LF.
- Этот параметр не следует использовать для двоичных файлов. Эту опцию можно
- использовать в Unix, если zip-файл предназначен для PKUNZIP под MSDOS.
- Если входные файлы уже содержат CR LF, эта опция добавляет дополнительный CR.
- Это делается для того, чтобы unzip -a в Unix вернула точную копию исходного файла,
- чтобы отменить действие zip -l. См. -ll, как обрабатываются двоичные файлы.
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 9)D;echo -en "\e[1;37m"; (E9);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- Добавить к существующему файлу журнала. По умолчанию перезаписывается.
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 10)D;echo -en "\e[1;37m";(E10);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- Откройте файл журнала по указанному пути.
- По умолчанию любой существующий файл в этом месте перезаписывается,
- но параметр -la приведет к открытию существующего файла
- и добавлению новой информации журнала к любой существующей информации.
- В журнал записываются только предупреждения и ошибки,
- если не указан параметр -li,
- тогда все информационные сообщения также записываются в журнал.
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 11)D;echo -en "\e[1;37m";(E11);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- Включите в журнал информационные сообщения, например, об именах архивируемых
- файлов. По умолчанию включаются только командная строка, любые предупреждения
- и ошибки, а также окончательный статус.
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 12)D;echo -en "\e[1;37m";(E12);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- Переведите конечный CR LF MSDOS в Unix LF.
- Этот параметр не следует использовать для двоичных файлов. Эту опцию можно
- использовать в MSDOS, если zip-файл предназначен для распаковки в Unix.
- Если файл преобразован, а позже определяется как двоичный, выдается предупреждение
- и файл вероятно поврежден. В этом выпуске, если -ll обнаруживает двоичный файл в
- первом буфере, считанном из файла, zip теперь выдает предупреждение и пропускает
- преобразование конца строки в файле. Эта проверка, по-видимому, перехватывает все
- проверенные двоичные файлы, но исходная проверка остается, и если позже будет
- определено, что преобразованный файл является двоичным, предупреждение все равно
- выдается. В настоящее время используется новый алгоритм для обнаружения двоичных
- файлов, который должен позволять преобразование конца строки текстовых файлов
- в UTF-8 и аналогичные кодировки.
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 13)D;echo -en "\e[1;37m";(E13);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- Показать ZIP-лицензию:
- \e[32m zip -L\e[0m или\e[32m zip --license\e[0m
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 14)D;echo -en "\e[1;37m";(E14);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- Переместите указанные файлы в zip-архив; на самом деле это удаляет целевые
- каталоги/файлы после создания указанного zip-архива.
- Если каталог становится пустым после удаления файлов, каталог также удаляется.
- Никакие удаления не выполняются до тех пор, пока zip не создаст архив без ошибок.
- Это полезно для экономии места на диске, но потенциально опасно, поэтому
- рекомендуется использовать его в сочетании с -T
- для проверки архива перед удалением всех входных файлов.
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 15)D;echo -en "\e[1;37m";(E15);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- Все входные шаблоны должны соответствовать хотя бы одному файлу,
- и все найденные входные файлы должны быть доступны для чтения.
- Обычно, когда входной шаблон не соответствует файлу, выдается предупреждение
- «имя не соответствует», а когда входной файл был найден, но позже отсутствует
- или не читается, выдается предупреждение об отсутствии или нечитаемости.
- В любом случае zip продолжает создавать архив, при этом отсутствующие
- или нечитаемые новые файлы пропускаются, а файлы, уже находящиеся в архиве,
- остаются без изменений.
- После создания архива, если какие-либо файлы не читаются, zip возвращает
- код ошибки OPEN (18 в большинстве систем)
- вместо обычного успешного завершения (0 в большинстве систем).
- Если установлено -MM, zip завершает работу, как только входной шаблон не
- соответствует (всякий раз, когда выдается предупреждение «имя не соответствует»)
- или когда входной файл не читается. В любом случае zip завершает работу с ошибкой
- OPEN, и архив не создается. Этот параметр полезен, когда известный список файлов
- должен быть заархивирован, поэтому любые отсутствующие или нечитаемые файлы
- приведут к ошибке. Это менее полезно при использовании с подстановочными знаками,
- но zip все равно завершится с ошибкой, если какой-либо входной шаблон не
- соответствует хотя бы одному файлу и если какие-либо совпавшие файлы не читаются.
- Если вы все равно хотите создать архив и вам нужно знать только,
- были ли пропущены файлы, не используйте -MM и просто проверьте код возврата.
- Также может быть полезен параметр -lf.
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 16)D;echo -en "\e[1;37m";(E16);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- Не пытайтесь сжимать файлы с указанными суффиксами.
- Такие файлы просто сохраняются (сжатие 0%) в выходном zip-файле,
- так что zip не тратит время на их сжатие.
- Суффиксы разделяются двоеточием или точкой с запятой. Например:
- \e[32m zip -rn .Z:.zip:.tiff:.gif:.snd foo foo\e[0m
- скопирует все из foo в foo.zip, но сохранит любые файлы, которые заканчиваются на
- \e[32m .Z, .zip, .tiff, .gif или .snd\e[0m
- не пытаясь их сжать (файлы изображений и звуков часто имеют свои собственные
- специализированные методы сжатия).
- По умолчанию zip не сжимает файлы с расширениями из списка
- \e[32m .Z:.zip:.zoo:.arc:.lzh:.arj\e[0m
- Такие файлы сохраняются непосредственно в выходном архиве.
- Переменную среды ZIPOPT можно использовать для изменения параметров по умолчанию.
- Например под Unix с csh:
- \e[32m setenv ZIPOPT \"-n .gif:.zip\"\e[0m
- Чтобы попытаться сжать все файлы, используйте:
- \e[32m zip -n : foo\e[0m Параметр максимального сжатия -9
- также пытается сжать все файлы независимо от расширения.
- В системах ОС Acorn RISC суффиксы на самом деле являются типами файлов
- (формат из 3 шестнадцатеричных цифр).
- По умолчанию zip не сжимает файлы с типами файлов из списка
- DDC:D96:68E (т. е. архивы, файлы CFS и файлы PackDir).
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 17)D;echo -en "\e[1;37m";(E17);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- Не выполнять внутреннюю обработку подстановочных знаков
- (обработка подстановочных знаков выполняется оболочкой,
- если только аргументы не экранированы). Полезно,
- если считывается список путей и не требуется замена подстановочных знаков.
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 18)D;echo -en "\e[1;37m";(E18);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- [Amiga, MacOS] Сохраняйте примечания к файлам Amiga или MacOS как комментарии
- к zip-файлам. Их можно восстановить, используя опцию -N для распаковки.
- Если также используется -c, комментарии запрашиваются только для тех файлов,
- которые не имеют примечаний к файлам.
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 19)D;echo -en "\e[1;37m";(E19);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- Установите время «последнего изменения» zip-архива на самое последнее
- (самое старое) время «последнего изменения», найденное среди записей в zip-архиве.
- При желании его можно использовать без каких-либо других операций. Например:
- \e[32m zip -o foo\e[0m изменит время последнего изменения foo.zip
- на самое последнее время записей в foo.zip.
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 20)D;echo -en "\e[1;37m";(E20);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- Обработайте архивные изменения как обычно, но вместо обновления существующего
- архива выведите новый архив в выходной файл. Полезно для обновления архива без
- изменения существующего архива, и входной архив должен быть файлом, отличным от
- выходного архива. Эту опцию можно использовать для создания обновленных
- разделенных архивов. Его также можно использовать с -U для копирования записей
- из существующего архива в новый архив.
- См. раздел ПРИМЕРЫ ниже. Другое использование — преобразование zip-файлов из
- одного размера разделения в другой. Например, чтобы преобразовать архив
- с разделами CD по 700 МБ в архив с разделами DVD по 2 ГБ, можно использовать:
- \e[32m zip -s 2g cd-split.zip --out dvd-split.zip\e[0m
- который использует режим копирования. См. -U ниже. Также:
- \e[32m zip -s 0 split.zip --out unsplit.zip\e[0m
- преобразует разделенный архив в однофайловый архив.
- Режим копирования преобразует записи потока (с использованием дескрипторов
- данных и которые должны быть совместимы с большинством распаковок)
- в обычные записи (которые должны быть совместимы со всеми распаковками),
- за исключением случаев, когда использовалось стандартное шифрование.
- Для архивов с зашифрованными записями zipcloak расшифрует записи
- и преобразует их в обычные записи.
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 21)D;echo -en "\e[1;37m";(E21);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- Включите относительные пути к файлам как часть имен файлов, хранящихся в архиве.
- Это значение по умолчанию.
- Параметр -j отбрасывает пути и просто сохраняет имена файлов.
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 22)D;echo -en "\e[1;37m";(E22);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- Используйте пароль для шифрования записей zip-файла (если есть). ЭТО НЕБЕЗОПАСНО!
- Многие многопользовательские операционные системы позволяют любому пользователю
- видеть текущую командную строку любого другого пользователя; даже в автономных
- системах всегда существует угроза подглядывания через плечо.
- Хранение открытого текста пароля как части командной строки в автоматизированном
- сценарии еще хуже. По возможности используйте интерактивную подсказку без эха
- для ввода паролей. (А там, где безопасность действительно важна, используйте
- надежное шифрование, такое как Pretty Good Privacy, вместо относительно слабого
- стандартного шифрования, предоставляемого утилитами zipfile.)
- Зашифруйте содержимое zip-архива, используя пароль, который вводится
- на терминале в ответ на приглашение (это не будет отображено; если стандартная
- ошибка не является tty, zip завершится с ошибкой).
- Запрос пароля повторяется, чтобы уберечь пользователя от ошибок ввода.
- Создать zip-архив зашифрованный из файлa:
- \e[32m zip -P password -r file.zip file\e[0m
- Создать zip-архив зашифрованный из нескольких файлов:
- \e[32m zip --password MY_SECRET secure.zip doc.pdf doc2.pdf doc3.pdf\e[0m
- или
- \e[32m zip --password 000 secure.zip *\e[0m
- Создать zip-архив зашифрованный из папки
- \e[32m zip -P мойпароль -r mysecretdir.zip mysecretdir\e[0m
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 23)D;echo -en "\e[1;37m";(E23);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- Бесшумный режим; исключить информационные сообщения и подсказки о комментариях.
- (Полезно, например, в сценариях оболочки и фоновых задачах).
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 24)D;echo -en "\e[1;37m";(E24);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- [QDOS] хранит информацию о файле в заголовке файла с n, определенным как
- \e[32m bit 0:\e[0m не добавлять заголовки для любого файла
- \e[32m bit 1:\e[0m добавить заголовки для всех файлов
- \e[32m bit 2:\e[0m не ждать интерактивного нажатия клавиши при выходе
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 25)D;echo -en "\e[1;37m";(E25);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- Рекурсивно перемещайтесь по структуре каталогов, например:
- \e[32m zip -r foo.zip foo\e[0m
- или более кратко
- \e[32m zip -r foo foo\e[0m
- В этом случае все файлы и каталоги в foo сохраняются в zip-архиве с именем foo.zip
- включая файлы с именами, начинающимися с \".\", поскольку рекурсия не использует
- механизм подстановки имен файлов оболочки.
- Если вы хотите включить только определенное подмножество файлов в каталоге foo
- и его подкаталогах, используйте параметр -i, чтобы указать шаблон файлов, которые
- необходимо включить. Вы не должны использовать -r с именем \".*\", так как это
- соответствует \"..\", что попытается заархивировать родительский каталог
- (вероятно, не то, что предполагалось).
- Допускается несколько исходных каталогов, как в
- \e[32m zip -r foo foo1 foo2\e[0m
- который сначала заархивирует foo1, а затем foo2, спускаясь по каждому каталогу.
- Обратите внимание, что хотя подстановочные знаки для -r обычно разрешаются при
- рекурсивном переходе вниз по каталогам в файловой системе, любые подстановочные
- знаки -R, -x и -i применяются к внутренним путям к архивам после сканирования
- каталогов. Чтобы подстановочные знаки применялись к файлам в подкаталогах при
- рекурсии в Unix и подобных системах, где оболочка выполняет подстановку
- подстановочных знаков, либо экранируйте все подстановочные знаки, либо поместите
- все аргументы с подстановочными знаками в кавычки.
- Это позволяет zip видеть подстановочные знаки
- и сопоставлять файлы в подкаталогах, используя их при рекурсии.
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 26)D;echo -en "\e[1;37m";(E26);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- Рекурсивно перемещаться по структуре каталогов, начиная с текущего каталога;
- например:\e[32m zip -R foo \"*.c\"\e[0m
- В этом случае все файлы, соответствующие *.c в дереве, начиная с текущего каталога
- сохраняются в zip-архиве с именем foo.zip. Обратите внимание, что *.c будет
- соответствовать файлу.c, a/file.c и a/b/.c. В качестве отдельных аргументов может
- быть указано более одного шаблона.
- Примечание для пользователей PKZIP: эквивалентная команда\e[32m pkzip -rP foo *.c\e[0m
- Шаблоны представляют собой относительные пути к файлам, как они появляются в
- архиве или будут после архивирования, и могут содержать необязательные
- подстановочные знаки. Например, если текущий каталог называется foo,
- в нем находятся каталоги foo1 и foo2, а в foo1 находится файл bar.c,
- \e[32m zip -R foo/*\e[0m
- будут zip up foo, foo/foo1, foo/foo1/bar.c, и foo/foo2
- \e[32m zip -R */bar.c\e[0m
- будут zip up foo/foo1/bar.c
- См. примечание для -r об экранировании подстановочных знаков.
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 27)D;echo -en "\e[1;37m";(E27);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- [WIN32] До zip 3.0 сопоставление списков регулярных выражений было включено
- по умолчанию на платформах Windows. Из-за путаницы, возникающей из-за
- необходимости экранировать \"[\" и \"]\" в именах, теперь это отключено по
- умолчанию для Windows, поэтому \"[\" и \"]\" — это обычные символы в именах.
- Эта опция снова включает сопоставление []
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 28)D;echo -en "\e[1;37m";(E28);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- Создание сплит Zip файла
- Представьте, что вы хотите хранить Zip-архив в службе размещения файлов, у
- которой ограничение размера загрузки файла составляет 1 ГБ, а ваш Zip-архив
- составляет 5 ГБ.
- Вы можете создать новый разделенный Zip-файл, используя -s опцию с указанным
- размером. Множитель может быть k (килобайт), m (мегабайт), g (гигабайт) или t
- (терабайт).
- \e[32m zip -s 1g -r archivename.zip directory_name\e[0m
- Приведенная выше команда будет продолжать создавать новые архивы в наборе после
- достижения указанного предела размера.
- Включите создание разделенного архива и установите размер разделения.
- Разделенный архив — это архив, который можно разделить на несколько файлов.
- При создании архива, если размер архива достигает указанного размера разделения,
- это разделение закрывается и открывается следующее разделение. Как правило,
- все разбивается, но последним будет размер разделения, а последним будет то,
- что осталось. Если весь архив меньше размера разделения, создается однофайловый
- архив. Разделенные архивы хранятся в пронумерованных файлах.
- Например, если выходной архив называется архивом и требуется три разделения,
- результирующий архив будет состоять из трех файлов:
- archive.z01, archive.z02, and archive.zip
- Не изменяйте нумерацию этих файлов, иначе архив будет нечитаем, поскольку они
- используются для определения порядка чтения разделов. Размер разделения
- — это число, за которым может следовать множитель. В настоящее время число
- должно быть целым числом. В настоящее время множитель может быть одним из
- k (килобайты), m (мегабайты), g (гигабайты) или t (терабайты).
- Поскольку 64 КБ — это минимальный размер разделения, числа без множителей
- по умолчанию равны мегабайтам. Например, чтобы создать раздельный архив
- с именем foo с содержимым каталога bar с разделами по 670 МБ, который
- может быть полезен для записи на компакт-диски, выполните команду:
- \e[32m zip -s 670m -r foo bar\e[0m может быть использован.
- В настоящее время старые разбиения разделенного архива не исключаются из нового
- архива, но их можно специально исключить. Если возможно, держите входные
- и выходные архивы вне пути архивирования при создании разделенных архивов.
- Использование -s без -sp, как указано выше, создает все разбиения, в которые
- записывается foo, в данном случае текущий каталог. Этот режим разделения
- обновляет разделения по мере создания архива, требуя, чтобы все разделения
- оставались доступными для записи, но создает разделенные архивы, доступные для
- чтения любой распаковкой, поддерживающей разделенные архивы.
- См. -sp ниже, чтобы включить режим разделенной паузы, который позволяет
- записывать фрагменты непосредственно на съемный носитель.
- Параметр -sv можно использовать для включения подробного разделения
- и предоставления сведений о том, как выполняется разделение.
- Параметр -sb можно использовать для звонка, когда zip делает паузу
- для следующего пункта назначения разделения. Разделенные архивы не могут быть
- обновлены, но см. параметр -O (--out), чтобы узнать, как можно обновить
- разделенный архив при его копировании в новый архив. Разделенный архив также
- можно преобразовать в однофайловый архив,
- используя размер разделения 0 или отрицая параметр -s:
- \e[32m zip -s 0 split.zip --out single.zip\e[0m
- Также см. -U (--copy) для получения дополнительной информации
- об использовании режима копирования.
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 29)D;echo -en "\e[1;37m";(E29);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- При разделении и использовании режима разделенной паузы звоните в колокольчик,
- когда почтовый индекс делает паузу для каждого места назначения разделения.
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 30)D;echo -en "\e[1;37m";(E30);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;fZip;fi;;
- esac;C;done
- }
- #==============================================================================================
- #==============================================================================================
- #==============================================================================================
- fZipOptionsC()
- {
- trap 'echo -en "\ec"; stty sane; exit' SIGINT
- aa=0
- A(){ for b in $(seq 0 30);do E${b};done; }
- B()
- {
- local c
- IFS= read -s -n1 c 2>/dev/null >&2
- if [[ $c = $(echo -en "\e") ]]; then
- read -s -n1 c 2>/dev/null >&2
- if [[ $c = \[ ]]; then
- read -s -n1 c 2>/dev/null >&2
- case $c in
- A) echo d ;;
- B) echo e ;;
- C) echo f ;;
- D) echo g ;;
- esac
- fi
- elif [[ "$c" == "$(echo -en \\x0A)" ]]; then
- echo enter
- fi
- }
- C()
- {
- if [[ $i == d ]];then ((aa--));fi
- if [[ $i == e ]];then ((aa++));fi
- if [[ $aa -lt 0 ]];then aa=30;fi
- if [[ $aa -gt 30 ]];then aa=0;fi;
- }
- D()
- {
- j1=$((aa+1)); k1=$((aa-1))
- if [[ $k1 -lt 0 ]];then k1=30;fi
- if [[ $j1 -gt 30 ]];then j1=0;fi
- if [[ $aa -lt $aa ]];then echo -en "\e[0m";E$k1;else echo -en "\e[0m";E$j1;fi
- if [[ $j1 -eq 0 ]] || [ $k1 -eq 30 ];then
- echo -en "\e[0m" ; E$k1; E$j1;fi;echo -en "\e[0m";E$k1;E$j1;
- }
- TXa()
- {
- for (( a=2; a<=35; a++ ))
- do
- echo -e "\e[${a};1H\e[34m\xE2\x94\x82 \xE2\x94\x82\e[0m"
- done
- echo -en "\e[1;1H\e[34m┌────────────────────────────────────────────────────────────────────────────────┐\e[0m";
- echo -en "\e[2;2H\e[36m Options\e[0m \e[2m Параметры, Опции\e[0m";
- echo -en "\e[3;1H\e[34m├────────────────────────────────────────────────────────────────────────────────┤\e[0m";
- echo -en "\e[34;1H\e[34m├─ \xE2\x86\x91 Up ───── \xE2\x86\x93 Down ──── \xe2\x86\xb2 Select Enter ────────────────────────────────────────┤\e[0m";
- echo -en "\e[36;1H\e[34m└────────────────────────────────────────────────────────────────────────────────┘\e[0m";
- }
- E0(){ echo -en "\e[4;2H Покажите терминал, запускающую zip как обработанную \e[32m -sc --show-command \e[0m";}
- E1(){ echo -en "\e[5;2H Покажите файлы, над которыми будут работать, затем выйдите \e[32m -sf --show-files \e[0m";}
- E2(){ echo -en "\e[6;2H Показать все доступные параметры, поддерживаемые zip \e[32m -so --show-options \e[0m";}
- E3(){ echo -en "\e[7;2H С помощью -s, включите режим разделения паузы \e[32m -sp --split-pause \e[0m";}
- E4(){ echo -en "\e[8;2H Как -sf, но также показывать версию пути в Unicode \e[32m -su --show-unicode \e[0m";}
- E5(){ echo -en "\e[9;2H То же, что -sf, но показывать версию в Юникоде \e[32m -sU --show-just-unicode \e[0m";}
- E6(){ echo -en "\e[10;2H Включите различные подробные сообщения \e[32m -sv --split-verbose \e[0m";}
- E7(){ echo -en "\e[11;2H Включить системные и скрытые файлы \e[32m -S --system-hidden \e[0m";}
- E8(){ echo -en "\e[12;2H Не работать с файлами, измененными до даты \e[32m -t mmddyyyy --from-date mmddyyyy \e[0m";}
- E9(){ echo -en "\e[13;2H Не работать с файлами, указанной даты \e[32m -tt mmddyyyy --before-date mmddyyyy \e[0m";}
- E10(){ echo -en "\e[14;2H Проверьте целостность нового zip-файла \e[32m -T --test \e[0m";}
- E11(){ echo -en "\e[15;2H Используйте команду cmd вместо unzip -tqq \e[32m -TT cmd --unzip-command cmd \e[0m";}
- E12(){ echo -en "\e[16;2H Заменять (обновлять) существующую запись в zip-архиве \e[32m -u --update \e[0m";}
- E13(){ echo -en "\e[17;2H Копировать записи из одного архива в другой \e[32m -U --copy-entries \e[0m";}
- E14(){ echo -en "\e[18;2H Определите, что zip должен делать с именами файлов Unicode\e[32m -UN v --unicode v \e[0m";}
- E15(){ echo -en "\e[19;2H Подробный режим распечатать информацию о диагностической версии\e[32m -v --verbose \e[0m";}
- E16(){ echo -en "\e[20;2H Сохранение атрибутов файла VMS \e[32m -V --VMS-portable \e[0m";}
- E17(){ echo -en "\e[21;2H Сохранение атрибутов файла VMS и выделенных блоков в файл\e[32m -VV --VMS-specific \e[0m";}
- E18(){ echo -en "\e[22;2H Добавление номера версии файлов к имени \e[32m -w --VMS-versions \e[0m";}
- E19(){ echo -en "\e[23;2H Добавляйте к имени номер версии файлов \e[32m -ww --VMS-dot-versions \e[0m";}
- E20(){ echo -en "\e[24;2H Подстановочные знаки совпадают только уровня каталога \e[32m -ws --wild-stop-dirs \e[0m";}
- E21(){ echo -en "\e[25;2H Явно исключить указанные файлы \e[32m -x files --exclude files \e[0m";}
- E22(){ echo -en "\e[26;2H Не сохраняйте дополнительные атрибуты файла \e[32m -X --no-extra \e[0m";}
- E23(){ echo -en "\e[27;2H Для UNIX и VMS (версия 8.3 и более поздние) \e[32m -y --symlinks \e[0m";}
- E24(){ echo -en "\e[28;2H Запрашивать многострочный комментарий для zip-архива \e[32m -z --archive-comment \e[0m";}
- E25(){ echo -en "\e[29;2H Установите метод сжатия по умолчанию \e[32m -Z cm --compression-method cm \e[0m";}
- E26(){ echo -en "\e[30;2H Регулируйте скорость сжатия \e[32m -# (-0, -1, -2, -3, -4, -5, -6, -7, -8, -9) \e[0m";}
- E27(){ echo -en "\e[31;2H Используйте привилегии (если они предоставлены) \e[32m -! --use-privileges \e[0m";}
- E28(){ echo -en "\e[32;2H Возьмите список входных файлов из стандартного ввода \e[32m -@ --names-stdin \e[0m";}
- E29(){ echo -en "\e[33;2H Включите метку тома для диска \e[32m -$ --volume-label \e[0m";}
- E30(){ echo -en "\e[35;2H \e[34m Exit \e[0m";}
- INI(){ echo -en "\ec" ;stty sane;TXa;A; };INI
- while [[ "$l1" != " " ]]; do case $aa in
- 0)D;echo -en "\e[1;37m"; (E0);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- Покажите командную строку, запускающую zip как обработанную, и выйдите.
- Новый синтаксический анализатор команд переставляет аргументы, помещая все
- параметры и любые связанные с ними значения перед любыми аргументами,
- не являющимися параметрами. Это позволяет параметру появляться в любом месте
- командной строки, если любые значения, связанные с параметром, соответствуют ему.
- Эта опция отображает командную строку так, как ее видит zip, включая любые
- аргументы из среды, например из переменной ZIPOPT. Там, где это разрешено,
- параметры, расположенные позже в командной строке, могут иметь приоритет
- перед параметрами, указанными ранее в командной строке.
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 1)D;echo -en "\e[1;37m"; (E1);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- Покажите файлы, над которыми будут работать, затем выйдите.
- Например, при создании нового архива будут перечислены файлы, которые будут
- добавлены. Если опция отключена, -sf-, вывод только в открытый файл журнала.
- Отображение на экране не рекомендуется для больших списков.
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 2)D;echo -en "\e[1;37m"; (E2);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- Показать все доступные параметры, поддерживаемые zip, скомпилированные в текущей
- системе. Поскольку эта команда считывает таблицу параметров, она должна включать
- все параметры. Каждая строка включает краткую опцию (если определена),
- длинную опцию (если определена), формат любого значения, которое идет с опцией,
- если опция может быть инвертирована, и небольшое описание. Формат значения может
- быть без значения, обязательным значением, необязательным значением,
- односимвольным значением, числовым значением или списком значений.
- Вывод этой опции не предназначен для того, чтобы показать, как использовать
- какую-либо опцию, а только для того, чтобы показать, какие опции доступны.
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 3)D;echo -en "\e[1;37m"; (E3);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- Если разделение включено с помощью -s, включите режим разделения паузы.
- Это создает разделенные архивы, как это делает -s, но используется потоковая
- запись, поэтому каждое разделение может быть закрыто, как только оно будет
- записано, и zip будет делать паузу между каждым разделением, чтобы разрешить
- изменение места назначения разделения или носителя. Хотя этот режим разделения
- позволяет записывать фрагменты непосредственно на съемный носитель, он использует
- формат потокового архива, который может быть нечитаем некоторыми распаковщиками.
- Прежде чем полагаться на сплиты, созданные с помощью -sp, протестируйте
- сплит-архив с помощью распаковки, которую вы будете использовать.
- Чтобы преобразовать разделенный потоком архив (созданный с помощью -sp)
- в стандартный архив, используйте параметр --out.
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 4)D;echo -en "\e[1;37m"; (E4);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- Как -sf, но также показывать версию пути в Unicode, если она существует.
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 5)D;echo -en "\e[1;37m"; (E5);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- То же, что и -sf, но показывать только версию пути в Юникоде,
- если она существует, в противном случае показывать стандартную версию пути.
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 6)D;echo -en "\e[1;37m"; (E6);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- Включите различные подробные сообщения во время разделения,
- показывающие, как выполняется разделение.
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 7)D;echo -en "\e[1;37m"; (E7);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- [MSDOS, OS/2, WIN32 и ATARI] Включить системные и скрытые файлы.
- [MacOS] Включает невидимые файлы Finder, которые в противном случае игнорируются.
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 8)D;echo -en "\e[1;37m"; (E8);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- Не работать с файлами, измененными до указанной даты,
- где мм — месяц (00–12), дд — день месяца (01–31), а гггг — год.
- Формат даты ISO 8601 yyyy-mm-dd также принимается. Например:
- \e[32m zip -rt 12071991 infamy foo\e[0m
- \e[32m zip -rt 1991-12-07 infamy foo\e[0m
- добавит все файлы в foo и его подкаталогах, которые в последний раз изменялись
- 7 декабря 1991 года или позднее, в zip-архив infamy.zip.
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 9)D;echo -en "\e[1;37m"; (E9);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- Не работать с файлами, измененными после или в указанную дату,
- где мм — месяц (00–12), дд — день месяца (01–31), а гггг — год.
- Формат даты ISO 8601 yyyy-mm-dd также принимается. Например:
- \e[32m zip -rtt 11301995 infamy foo\e[0m
- \e[32m zip -rtt 1995-11-30 infamy foo\e[0m
- добавит все файлы в foo и его подкаталогах,
- которые последний раз изменялись до 30 ноября 1995 года, в zip-архив infamy.zip
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 10)D;echo -en "\e[1;37m";(E10);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- Проверьте целостность нового zip-файла. Если проверка не пройдена,
- старый zip-файл остается неизменным и (с опцией -m) входные файлы не удаляются.
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 11)D;echo -en "\e[1;37m";(E11);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- Используйте команду cmd вместо «unzip -tqq», чтобы проверить архив, когда
- используется опция -T. В Unix, чтобы использовать копию unzip в текущем каталоге
- вместо стандартной системной распаковки, можно использовать:
- \e[32m \e[0m
- В cmd {} заменяется именем временного архива, в противном случае имя архива
- добавляется в конец команды. Код возврата проверяется на успех (0 в Unix).
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 12)D;echo -en "\e[1;37m";(E12);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- Заменять (обновлять) существующую запись в zip-архиве только в том случае,
- если она была изменена позднее, чем версия, уже находящаяся в zip-архиве.
- Например:\e[32m zip -u stuff *\e[0m
- добавит любые новые файлы в текущий каталог и обновит все файлы, которые были
- изменены с момента последнего создания/изменения zip-архива stuff.zip
- (обратите внимание, что zip не будет пытаться упаковать stuff.zip в себя,
- когда вы это сделаете). Обратите внимание, что параметр -u без аргументов
- входного файла действует так же, как параметр -f (freshen).
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 13)D;echo -en "\e[1;37m";(E13);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- Копировать записи из одного архива в другой.
- Требуется параметр --out для указания выходного файла, отличного от входного
- архива. Режим копирования противоположен -d delete. Когда удаление используется
- с --out, выбранные записи удаляются из архива, а все остальные записи копируются
- в новый архив, а режим копирования выбирает файлы для включения в новый архив.
- В отличие от -u update шаблоны ввода в командной строке сопоставляются только
- с записями архива, а не с файлами файловой системы. Например:
- \e[32m zip inarchive \"*.c\" --copy --out outarchive\e[0m
- копирует записи с именами, оканчивающимися на .c, из inarchive в outarchive.
- В некоторых системах необходимо экранировать подстановочный знак, чтобы оболочка
- не подставляла имена файлов из файловой системы, которые могут не иметь отношения
- к записям в архиве. Если в командной строке не отображаются входные файлы
- и используется параметр --out, предполагается режим копирования:
- \e[32m zip inarchive --out outarchive\e[0m
- Это полезно, например, для изменения размера разделения.
- Шифрование и дешифрование записей пока не поддерживается в режиме копирования.
- Используйте для этого zipcloak.
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 14)D;echo -en "\e[1;37m";(E14);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- Определите, что zip должен делать с именами файлов Unicode. zip 3.0,
- в дополнение к стандартному пути к файлу, теперь включает перевод пути UTF-8, если
- путь входа не полностью 7-битный ASCII. Если в записи отсутствует путь Unicode,
- zip возвращается к стандартному пути к файлу. Проблема с использованием
- стандартного пути заключается в том, что этот путь находится в локальном наборе
- символов почтового индекса, создавшего запись, который может содержать символы,
- недопустимые в наборе символов, используемом при распаковке.
- Когда zip читает архив, если запись также имеет путь Unicode,
- zip теперь по умолчанию использует путь Unicode для воссоздания стандартного пути
- с использованием текущего локального набора символов.
- Этот параметр можно использовать для определения того, что zip должен делать
- с этим путем, если существует несоответствие между сохраненным стандартным путем
- и сохраненным путем UTF-8 (что может произойти, если стандартный путь был
- обновлен). Во всех случаях, если есть несоответствие, предполагается,
- что стандартный путь более актуален, и zip использует его. Значения для v:
- \e[32m q\e[0m - выйти, если пути не совпадают
- \e[32m w\e[0m - предупредить, продолжить по стандартному пути
- \e[32m i\e[0m - игнорировать, продолжить по стандартному пути
- \e[32m n\e[0m - нет Unicode, не использовать пути Unicode
- По умолчанию предупреждение и продолжение.
- Символы, недопустимые в текущем наборе символов, экранируются как
- #Uxxxx и #Lxxxxxx,
- где x — это символ ASCII для шестнадцатеричной цифры.
- Первый используется, если 16-битного номера символа достаточно для представления
- символа Unicode, а второй, если символу требуется более 16 бит для представления
- его кода символа Unicode. Установка -UN в
- \e[32m e - escape\e[0m
- как в
- \e[32m zip archive -sU -UN=e\e[0m
- заставляет zip экранировать все символы, которые не могут быть напечатаны
- 7-битным ASCII. Обычно zip сохраняет UTF-8 непосредственно в поле стандартного
- пути в системах, где UTF-8 является текущим набором символов,
- и в противном случае сохраняет UTF-8 в новых дополнительных полях. Опция
- \e[32m u - UTF-8\e[0m
- как в
- \e[32m zip archive dir -r -UN=UTF8\e[0m
- заставляет zip хранить кодировку UTF-8 как нативную в архиве. Обратите внимание,
- что сохранение UTF-8 напрямую используется по умолчанию в системах Unix, которые
- его поддерживают. Этот параметр может быть полезен в системах Windows,
- где экранированный путь слишком велик, чтобы быть допустимым путем,
- а версия пути UTF-8 меньше,
- но собственная UTF-8 не имеет обратной совместимости в системах Windows.
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 15)D;echo -en "\e[1;37m";(E15);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- Подробный режим или распечатать информацию о диагностической версии.
- Обычно применительно к реальным операциям этот параметр включает отображение
- индикатора выполнения во время сжатия (см. -dd для получения дополнительной
- информации о точках) и запрашивает подробную диагностическую информацию о
- странностях структуры zip-файла. Однако, когда -v является единственным
- аргументом командной строки, вместо этого печатается диагностический экран.
- Теперь это должно работать, даже если стандартный вывод перенаправляется в файл,
- что позволяет легко сохранять информацию для отправки с отчетами об ошибках
- в Info-ZIP. Экран версии содержит заголовок экрана справки с названием программы,
- версией и датой выпуска, некоторыми указателями на домашний и дистрибутивный
- сайты Info-ZIP, а также показывает информацию о целевой среде (тип и версия
- компилятора, версия ОС, дата компиляции и включены дополнительные функции,
- используемые для создания исполняемого файла zip).
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 16)D;echo -en "\e[1;37m";(E16);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- [VMS] Сохранение атрибутов файла VMS. (Файлы усекаются в EOF.)
- Когда архив -V распаковывается в системе, отличной от VMS, некоторые типы файлов
- (особенно текстовые файлы Stream_LF и чистые двоичные файлы, такие как fixed-512)
- должны быть извлечены без изменений. Индексированные файлы и типы файлов со
- встроенными размерами записей (особенно типы записей переменной длины),
- вероятно, будут рассматриваться как поврежденные в другом месте.
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 17)D;echo -en "\e[1;37m";(E17);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- [VMS] Сохранение атрибутов файла VMS и всех выделенных блоков в файле, включая
- любые данные за пределами EOF. Полезно для перемещения файлов неправильного
- формата между системами VMS. Когда архив -VV распаковывается в системе,
- отличной от VMS, почти все файлы будут повреждены.
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 18)D;echo -en "\e[1;37m";(E18);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- [VMS] Добавление номера версии файлов к имени, включая несколько версий файлов.
- По умолчанию используется только самая последняя версия указанного файла.
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 19)D;echo -en "\e[1;37m";(E19);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- [VMS] Добавляйте к имени номер версии файлов, включая несколько версий файлов,
- используя формат .nnn
- По умолчанию используется только самая последняя версия указанного файла.
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 20)D;echo -en "\e[1;37m";(E20);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- Подстановочные знаки совпадают только на уровне каталога.
- Обычно zip обрабатывает пути как строки и учитывая пути
- \e[32m /foo/bar/dir/file1.c\e[0m
- \e[32m /foo/bar/file2.c\e[0m
- шаблон ввода, такой как
- \e[32m /foo/bar/*\e[0m
- обычно соответствуют обоим путям, * соответствующим dir/file1.c и file2.c.
- Обратите внимание, что в первом случае при совпадении была пересечена граница
- каталога (/). С параметром -ws никакие границы каталогов не будут включены в
- сопоставление, что делает подстановочные знаки локальными для определенного
- уровня каталога. Таким образом, при включенном параметре -ws совпадет только
- второй путь. При использовании -ws используйте ** для соответствия между
- границами каталога, как это обычно делает *.
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 21)D;echo -en "\e[1;37m";(E21);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- Явно исключить указанные файлы, например:
- \e[32m zip -r foo foo -x \\*.o\e[0m
- который будет включать содержимое foo в foo.zip, исключая все файлы,
- оканчивающиеся на .o Обратная косая черта позволяет избежать замены имени файла
- оболочки, поэтому сопоставление имен выполняется zip на всех уровнях каталога.
- Также возможно:\e[32m zip -r foo foo -x@exclude.lst\e[0m
- который будет включать содержимое foo в foo.zip, исключая все файлы,
- соответствующие шаблонам в файле exclude.lst.
- Формы длинного опциона из вышеперечисленного:\e[32m zip -r foo foo --exclude \*.o\e[0m
- and\e[32m zip -r foo foo --exclude @exclude.lst\e[0m
- Можно указать несколько шаблонов, например:
- \e[32m zip -r foo foo -x \\*.o \\*.c\e[0m
- Если между -x и шаблоном нет пробела, предполагается только одно значение
- (без списка):\e[32m zip -r foo foo -x\\*.o\e[0m
- См. -i для получения дополнительной информации о включении и исключении.
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 22)D;echo -en "\e[1;37m";(E22);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- Не сохраняйте дополнительные атрибуты файла
- (расширенные атрибуты в OS/2, uid/gid и время файла в Unix).
- Формат zip использует дополнительные поля для включения дополнительной информации
- для каждой записи. Некоторые дополнительные поля относятся к конкретным системам,
- в то время как другие применимы ко всем системам. Обычно, когда zip читает записи
- из существующего архива, он считывает известные ему дополнительные поля, удаляет
- остальные и добавляет дополнительные поля, применимые к этой системе.
- С -X zip удаляет все старые поля и включает только дополнительные поля Unicode
- и Zip64 (в настоящее время эти два дополнительных поля нельзя отключить).
- Отрицая эту опцию, -X- включает все дополнительные поля по умолчанию,
- но также копирует любые нераспознанные дополнительные поля.
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 23)D;echo -en "\e[1;37m";(E23);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- Для UNIX и VMS (версия 8.3 и более поздние) сохраняйте символические ссылки
- как таковые в zip-архиве вместо того, чтобы сжимать и сохранять файл, на который
- ссылается ссылка. Это позволяет избежать включения нескольких копий файлов в
- архив, поскольку zip рекурсивно повторяет деревья каталогов
- и обращается к файлам напрямую и по ссылкам.
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 24)D;echo -en "\e[1;37m";(E24);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- Запрашивать многострочный комментарий для всего zip-архива.
- Комментарий заканчивается строкой, содержащей только точку или условие конца файла
- (^D в Unix, ^Z в MSDOS, OS/2 и VMS). Комментарий можно взять из файла:
- \e[32m zip -z foo < foowhat\e[0m
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 25)D;echo -en "\e[1;37m";(E25);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- Установите метод сжатия по умолчанию.
- Чтобы указать метод сжатия, используйте -Z опцию:
- \e[32m zip -r -Z bzip2 archivename.zip directory_name\e[0m
- В настоящее время основными методами, поддерживаемыми zip, являются store
- и deflate. Метод сжатия может быть установлен на:
- \e[32m store\e[0m - Установка метода сжатия для сохранения заставляет zip сохранять записи без
- сжатия. Обычно это быстрее, чем сжатие записей, но не приводит к экономии места.
- Это то же самое, что и использование -0 (нулевой уровень сжатия).
- \e[32m deflate\e[0m — это метод по умолчанию для zip.
- Если zip определяет, что сохранение лучше, чем дефляция, запись будет сохранена.
- \e[32m bzip2\e[0m — если скомпилирована поддержка bzip2, этот метод сжатия также становится
- доступным. Только некоторые современные распаковщики в настоящее время
- поддерживают метод сжатия bzip2, поэтому проверьте распаковку, которую вы будете
- использовать, прежде чем полагаться на архивы, использующие этот метод
- (метод сжатия 12).
- Например, чтобы добавить bar.c в архив foo, используя сжатие bzip2:
- \e[32m zip -Z bzip2 foo bar.c\e[0m
- Метод сжатия может быть сокращен:
- \e[32m zip -Zb foo bar.c\e[0m
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 26)D;echo -en "\e[1;37m";(E26);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- Команда zip позволяет указать уровень сжатия, используя число с префиксом от 0 до 9
- Регулируйте скорость сжатия с помощью указанной цифры #, где:
- \e[32m -0\e[0m указывает на отсутствие сжатия (сохранение всех файлов).
- При использовании -0, все файлы будут храниться без сжатия.
- \e[32m -1\e[0m указывает на самую высокую скорость сжатия (меньшее сжатие) и
- \e[32m -6\e[0m (оптимальное сжатие, игнорирует список суффиксов).
- Уровень сжатия по умолчанию равен -6.
- \e[32m -9\e[0m наилучший степень сжатия,
- заставит команду zip использовать оптимальное сжатие для всех файлов.
- Несмотря на то, что все еще ведется работа, предполагается, что этот параметр
- будет контролировать скорость сжатия для всех методов сжатия.
- В настоящее время контролируется только дефляция.
- Например, чтобы использовать уровень сжатия -9, вы должны напечатать что-то вроде:
- \e[32m zip -9 -r archivename.zip directory_name\e[0m
- Чем выше уровень сжатия, тем интенсивнее загрузка ЦП
- и процесс займет больше времени.
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 27)D;echo -en "\e[1;37m";(E27);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- [WIN32] Используйте привилегии (если они предоставлены)
- для получения всех аспектов безопасности WinNT.
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 28)D;echo -en "\e[1;37m";(E28);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- Возьмите список входных файлов из стандартного ввода.
- Только одно имя файла в строке.
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 29)D;echo -en "\e[1;37m";(E29);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- [MSDOS, OS/2, WIN32] Включите метку тома для диска, содержащего первый сжимаемый
- файл. Если вы хотите включить только метку тома или указать определенный диск,
- используйте имя диска в качестве первого имени файла, например:
- \e[32m zip -$ foo a: c:bar\e[0m
- ";echo -en "\e[1;34m ENTER = main menu ";read;INI;fi;;
- 30)D;echo -en "\e[1;37m";(E30);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;fZip;fi;;
- esac;C;done
- }
- #==============================================================================================
- #==============================================================================================
- #==============================================================================================
- fZip()
- {
- trap 'echo -en "\ec"; stty sane; exit' SIGINT
- aa=0
- A(){ for b in $(seq 0 17);do E${b};done; }
- B()
- {
- local c
- IFS= read -s -n1 c 2>/dev/null >&2
- if [[ $c = $(echo -en "\e") ]]; then
- read -s -n1 c 2>/dev/null >&2
- if [[ $c = \[ ]]; then
- read -s -n1 c 2>/dev/null >&2
- case $c in
- A) echo d ;;
- B) echo e ;;
- C) echo f ;;
- D) echo g ;;
- esac
- fi
- elif [[ "$c" == "$(echo -en \\x0A)" ]]; then
- echo enter
- fi
- }
- C()
- {
- if [[ $i == d ]];then ((aa--));fi
- if [[ $i == e ]];then ((aa++));fi
- if [[ $aa -lt 0 ]];then aa=17;fi
- if [[ $aa -gt 17 ]];then aa=0;fi;
- }
- D()
- {
- j1=$((aa+1)); k1=$((aa-1))
- if [[ $k1 -lt 0 ]];then k1=17;fi
- if [[ $j1 -gt 17 ]];then j1=0;fi
- if [[ $aa -lt $aa ]];then echo -en "\e[0m";E$k1;else echo -en "\e[0m";E$j1;fi
- if [[ $j1 -eq 0 ]] || [ $k1 -eq 17 ];then
- echo -en "\e[0m" ; E$k1; E$j1;fi;echo -en "\e[0m";E$k1;E$j1;
- }
- TXa()
- {
- for (( a=2; a<=28; a++ ))
- do
- echo -e "\e[${a};1H\e[47;30m│\e[0m \e[47;30m│\e[0m"
- done
- echo -en "\e[1;1H\033[0m\033[47;30m┌────────────────────────────────────────────────────────────────────────────────┐\033[0m";
- echo -en "\e[3;3H\e[1m *** zip ***\e[0m";
- echo -en "\e[4;3H\e[2m package and compress (archive) files\e[0m";
- echo -en "\e[5;1H\e[47;30m├\e[0m────────────────────────────────────────────────────────────────────────────────\e[0m\e[47;30m┤\e[0m";
- echo -en "\e[20;1H\e[47;30m├\e[0m────────────────────────────────────────────────────────────────────────────────\e[0m\e[47;30m┤\e[0m";
- echo -en "\e[21;3H\e[2m Порядок работы\e[0m";
- echo -en "\e[24;1H\e[47;30m├\e[0m────────────────────────────────────────────────────────────────────────────────\e[0m\e[47;30m┤\e[0m";
- echo -en "\e[26;1H\e[47;30m├\e[0m─ \xE2\x86\x91 Up ───── \xE2\x86\x93 Down ──── \xe2\x86\xb2 Select Enter ────────────────────────────────────────\e[0m\e[47;30m┤\e[0m";
- echo -en "\e[29;1H\e[0m\e[47;30m└────────────────────────────────────────────────────────────────────────────────┘\e[0m";
- }
- E0(){ echo -en "\e[6;3H Установка \e[32m Install \e[0m";}
- E1(){ echo -en "\e[7;3H Kраткий обзор \e[32m Synopsis \e[0m";}
- E2(){ echo -en "\e[8;3H Описание \e[32m Description \e[0m";}
- E3(){ echo -en "\e[9;3H Авторы \e[32m Authors \e[0m";}
- E4(){ echo -en "\e[10;3H Смотрите также \e[32m See Also \e[0m";}
- E5(){ echo -en "\e[11;3H Окружающая среда \e[32m Environment \e[0m";}
- E6(){ echo -en "\e[12;3H Диагностика \e[32m Diagnostics \e[0m";}
- E7(){ echo -en "\e[13;3H Ошибки \e[32m Bugs \e[0m";}
- E8(){ echo -en "\e[14;3H Благодарности \e[32m Acknowledgements \e[0m";}
- E9(){ echo -en "\e[15;3H Сопоставление с образцом \e[32m Pattern matching \e[0m";}
- E10(){ echo -en "\e[16;3H Применение \e[32m Use \e[0m";}
- E11(){ echo -en "\e[17;3H Параметры, Опции \e[32m Options A - H \e[0m";}
- E12(){ echo -en "\e[18;3H Параметры, Опции \e[32m Options H - S \e[0m";}
- E13(){ echo -en "\e[19;3H Параметры, Опции \e[32m Options S - Z \e[0m";}
- E14(){ echo -en "\e[22;3H Чтобы создать Zip архив ";}
- E15(){ echo -en "\e[23;3H Распаковка ";}
- E16(){ echo -en "\e[25;3H \e[32m Git \e[0m";}
- E17(){ echo -en "\e[27;3H Exit ";}
- INI(){ echo -en "\ec" ;stty sane;TXa;A; };INI
- while [[ "$l1" != " " ]]; do case $aa in
- 0)D;echo -en "\e[47;30m"; (E0);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- zip Утилита не устанавливается по умолчанию в большинстве дистрибутивов Linux,
- но вы можете легко установить его с помощью менеджера пакетов вашего
- дистрибутива.
- Установите Zip на Ubuntu и Debian:
- \e[32m sudo apt install zip unzip\e[0m
- Установите Zip на CentOS и Fedora:
- \e[32m sudo yum install zip\e[0m
- ";echo -en "\e[47;30m ENTER = main menu ";read;INI;fi;;
- 1)D;echo -en "\e[47;30m"; (E1);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- Синтаксис для использования команды zip:
- \e[32m zip [option] output_file_name input1 input2\e[0m
- Команда zip имеет следующую синтаксическую форму:
- \e[32m zip OPTIONS ARCHIVE_NAME FILES\e[0m
- \e[32m zip [-aABcdDeEfFghjklLmoqrRSTuvVwXyz!@$] [--longoption ...] [-b path]
- [-n suffixes] [-t date] [-tt date] [zipfile [file ...]] [-xi list]
- \e[0m
- \e[32m zipcloak\e[0m см. отдельную справочную страницу
- \e[32m zipnote \e[0m см. отдельную справочную страницу
- \e[32m zipsplit\e[0m см. отдельную справочную страницу
- zip опции файлы
- unzip опции архив
- Примечание. Обработка командной строки в zip была изменена для поддержки длинных
- параметров и более согласованной обработки всех параметров и аргументов.
- Некоторые старые командные строки, которые зависят от несогласованности команд-
- ной строки, могут больше не работать.
- ";echo -en "\e[47;30m ENTER = main menu ";read;INI;fi;;
- 2)D;echo -en "\e[47;30m"; (E2);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- zip — Кроссплатформенная утилита для создания сжатых архивов формата zip
- для Unix, VMS, MSDOS, OS/2, Windows, 9x/NT/XP, Minix, Atari, Macintosh, Amiga
- и Acorn RISC OS.
- Он аналогичен комбинации команд Unix tar и compress и совместим с PKZIP
- (ZIP Фила Каца для систем MSDOS).
- Сопутствующая программа (unzip) распаковывает zip-архивы. Программы zip
- и unzip могут работать с архивами, созданными PKZIP (поддерживая большинство
- функций PKZIP вплоть до PKZIP версии 4.6), а PKZIP и PKUNZIP могут работать с
- архивами, созданными zip (за некоторыми исключениями, в частности с потоковыми
- архивами, но недавними изменениями). в стандарте zip-файла может способствовать
- лучшей совместимости). zip версии 3.0 совместим с PKZIP 2.04, а также поддержи-
- вает расширения Zip64 PKZIP 4.5, которые позволяют архивам и файлам превышать
- предыдущий предел в 2ГБ (4ГБ в некоторых случаях). zip также теперь поддерживает
- сжатие bzip2, если библиотека bzip2 включена при компиляции zip.
- Обратите внимание, что PKUNZIP 1.10 не может извлекать файлы, созданные
- PKZIP2.04 или zip 3.0. Вы должны использовать PKUNZIP 2.04g или разархивировать
- 5.0p1 (или более поздние версии), чтобы распаковать их.
- См. раздел ПРИМЕРЫ внизу этой страницы для примеров некоторых типичных
- применений zip.
- Большие архивы и Zip64. zip автоматически использует расширения Zip64, когда в
- архив добавляются файлы размером более 4ГБ, обновляется архив, содержащий записи
- Zip64 (если полученный архив все еще нуждается в Zip64), размер архива превысит
- 4ГБ или когда количество записей в архиве превысит около 64К. Zip64 также ис-
- пользуется для архивов, передаваемых из стандартного ввода, поскольку размер
- таких архивов заранее неизвестен, но параметр -fz- можно использовать, чтобы за-
- ставить zip создавать архивы, совместимые с PKZIP 2 (пока расширения Zip64 не
- нужны) . Вы должны использовать распаковку, совместимую с PKZIP 4.5, например,
- разархивировать 6.0 или более позднюю версию, для извлечения файлов с использо-
- ванием расширений Zip64.
- Кроме того, потоковые архивы, записи, зашифрованные стандартным шифрованием,
- или разделенные архивы, созданные с помощью параметра паузы, могут быть несовме-
- стимы с PKZIP, поскольку используются дескрипторы данных, а PKZIP на момент на-
- писания этой статьи не поддерживает дескрипторы данных (но недавние изменения в
- Опубликованный PKWare стандарт zip теперь включает некоторую поддержку формата
- дескриптора данных, используемого zip).
- Mac OS X. Хотя в предыдущих версиях Mac был собственный порт zip, zip поддержи-
- вает MacOSX как часть порта Unix, и к нему применимо большинство функций Unix.
- Ссылки на MacOS ниже обычно относятся к версиям MacOS старше, чем OS X. Поддерж-
- ка некоторых функций MacOS в порте Unix MacOS X, таких как ветки ресурсов, ожи-
- дается в следующем выпуске zip. Чтобы получить краткую справку по zip и unzip,
- запустите каждый из них без указания каких-либо параметров в командной строке.
- ";echo -en "\e[47;30m ENTER = main menu ";read;INI;fi;;
- 3)D;echo -en "\e[47;30m"; (E3);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- Copyright (C) 1997-2008 Info-ZIP.
- В настоящее время распространяется под лицензией Info-ZIP.
- Copyright (C) 1990-1997 Марк Адлер, Ричард Б. Уэльс, Жан-Лу Гайи, Онно ван дер
- Линден, Кай Уве Роммель, Игорь Мандриченко, Джон Буш и Пол Киниц.
- Исходное авторское право:
- Разрешение предоставляется любому лицу или учреждению на использование, копиро-
- вание или повторное распространение этого программного обеспечения при условии,
- что включены все исходные файлы, что оно не продается с целью получения прибыли,
- и что данное уведомление об авторских правах сохраняется.
- КАК ВСЁ ДРУГОЕ БЕСПЛАТНОЕ, ZIP И СВЯЗАННЫЕ С НИМ УТИЛИТЫ ПРЕДОСТАВЛЯЮТСЯ КАК
- ЕСТЬ, БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, ЯВНЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ. ОБЛАДАТЕЛИ АВТОРСКИМ
- ПРАВОМ НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ НЕ НЕСУТ ОТВЕТСТВЕННОСТИ ЗА ЛЮБОЙ УЩЕРБ В
- РЕЗУЛЬТАТЕ ИСПОЛЬЗОВАНИЯ ДАННОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ.
- Пожалуйста, присылайте отчеты об ошибках и комментарии, используя веб-страницу
- по адресу:\e[36m www.info-zip.org\e[0m
- Для отчетов об ошибках, пожалуйста, укажите версию zip (см. zip -h),
- опции make, использованные для его компиляции (см. zip -v),
- используемую машину и операционную систему, а также как можно больше
- дополнительной информации.
- ";echo -en "\e[47;30m ENTER = main menu ";read;INI;fi;;
- 4)D;echo -en "\e[47;30m"; (E4);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "\e[32m
- compress
- shar
- tar
- unzip
- gzip
- \e[0m";echo -en "\e[47;30m ENTER = main menu ";read;INI;fi;;
- 5)D;echo -en "\e[47;30m"; (E5);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- Следующие переменные среды читаются и используются zip, как описано:
- \e[32m ZIPOPT \e[0mсодержит параметры по умолчанию, которые будут использоваться при за-
- пуске zip. Содержимое этой переменной среды будет добавлено в командную строку
- сразу после команды zip.
- \e[32m ZIP \e[0m[Не в ОС RISC и VMS] см. ZIPOPT
- \e[32m Zip\$Options \e[0m[ОС RISC] см. ZIPOPT
- \e[32m Zip\$Exts \e[0m[RISC OS] содержит расширения, разделенные :, что приведет к тому,
- что собственные имена файлов с одним из указанных расширений будут добавлены в
- zip-файл с заменой базового имени и расширения.
- \e[32m ZIP_OPTS \e[0m[VMS] см. ZIPOPT
- ";echo -en "\e[47;30m ENTER = main menu ";read;INI;fi;;
- 6)D;echo -en "\e[47;30m"; (E6);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;
- echo -e "
- \e[1;36m DIAGNOSTICS\e[0m
- Статус выхода (или уровень ошибки) приблизительно соответствует кодам выхода,
- определенным PKWARE, и принимает следующие значения, за исключением VMS:
- \e[32m 0\e[0m нормальный;никаких ошибок и предупреждений не обнаружено.
- \e[32m 2\e[0m неожиданное завершение zip-файла.
- \e[32m 3\e[0m обнаружена общая ошибка в формате zip-файла. В любом случае обра-
- ботка может быть успешно завершена; некоторые поврежденные zip-файлы, созданные
- другими архиваторами, имеют простые обходные пути.
- \e[32m 4\e[0m zip не удалось выделить память для одного или нескольких буферов во время
- инициализации программы.
- \e[32m 5\e[0m обнаружена серьезная ошибка в формате zip-файла.
- Обработка, вероятно, не удалась сразу.
- \e[32m 6\e[0m запись слишком велика для обработки (например, входные файлы размером более
- 2ГБ, когда не используется Zip64 или при попытке прочитать существующий слишком
- большой архив) или запись слишком велика для разделения с помощью zipsplit.
- \e[32m 7\e[0m неверный формат комментария.
- \e[32m 8\e[0m zip -T не удалось или не хватило памяти.
- \e[32m 9\e[0m пользователь преждевременно прервал zip с помощью control-C
- (или аналогичного).
- \e[32m 10\e[0m zip обнаружил ошибку при использовании временного файла.
- \e[32m 11\e[0m читать или искать ошибку.
- \e[32m 12\e[0m zip не имеет ничего общего.
- \e[32m 13\e[0m отсутствующий или пустой zip-файл.
- \e[32m 14\e[0m ошибка при записи в файл.
- \e[32m 15\e[0m zip не удалось создать файл для записи.
- \e[32m 16\e[0m неверные параметры командной строки.
- \e[32m 18\e[0m zip не удалось открыть указанный файл для чтения.
- \e[32m 19\e[0m zip был скомпилирован с параметрами, не поддерживаемыми в этой системе.
- VMS интерпретирует стандартные возвращаемые значения Unix (или ПК) как другие,
- более пугающие вещи, поэтому zip вместо этого отображает их в коды состояния в
- стиле VMS. Как правило, zip устанавливает VMS Facility u003d 1955 (0x07A3),
- Code u003d 2* Unix_status и соответствующий Severity (как указано в ziperr.h).
- Более подробная информация содержится в документации по VMS.
- См. [.vms]NOTES.TXT и [.vms]vms_msg_gen.c.
- ";echo -en "\e[47;30m ENTER = main menu ";read;INI;fi;;
- 7)D;echo -en "\e[47;30m"; (E7);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- zip 3.0 несовместим с PKUNZIP 1.10. Используйте zip 1.1 для создания zip-файлов,
- которые можно распаковать с помощью PKUNZIP 1.10.
- zip-файлы, созданные zip 3.0, не должны обновляться zip 1.1 или PKZIP 1.10,
- если они содержат зашифрованные элементы или если они были созданы в канале или
- на устройстве без поиска. Старые версии zip или PKZIP создавали архив неправиль-
- ного формата. Старые версии могут отображать содержимое zip-файла, но все равно
- не могут его распаковать (из-за нового алгоритма сжатия). Если вы не используете
- шифрование и используете обычные файлы на диске, вам не нужно беспокоиться об
- этой проблеме.
- В VMS не все нечетные форматы файлов обрабатываются должным образом. Ожидается,
- что только zip-файлы в формате stream-LF будут работать с zip. Другие можно пре-
- образовать с помощью программы BILF Рахула Дхеси. Эта версия zip выполняет неко-
- торые внутренние преобразования. При использовании Kermit для передачи zip-файлов
- из VMS в MSDOS введите «установить блок типа файла» в VMS. При переносе из MSDOS
- в VMS введите «установить фиксированный тип файла» в VMS. В обоих случаях введите
- «установить двоичный тип файла» в MS-DOS. В некоторых старых версиях VMS zip мо-
- жет зависать для спецификаций файлов, использующих синтаксис DECnet foo::*.*.
- В OS/2 zip не может соответствовать некоторым именам, например, содержащим вос-
- клицательный знак или знак решетки. Это ошибка самой OS/2: 32-битные
- DosFindFirst/Next не находят таких имен. Другие программы, такие как GNU tar,
- также подвержены этой ошибке. В OS/2 количество расширенных атрибутов, отобража-
- емых DIR, равно (для совместимости) количеству, возвращаемому 16-разрядной вер-
- сией DosQueryPathInfo(). В противном случае OS/2 1.3 и 2.0 сообщали бы о разных
- размерах EA при удалении файла. Однако структура структуры, возвращаемая 32-раз-
- рядной функцией DosQueryPathInfo(), немного отличается: в ней используются до-
- полнительные байты заполнения и указатели ссылок (это связанный список), чтобы
- все поля располагались на 4-байтовых границах для переносимости в будущую RISC
- OS/2. версии. Поэтому значение, сообщаемое zip (который использует этот размер в
- 32-битном режиме), отличается от значения, сообщаемого DIR. zip хранит 32-битный
- формат для переносимости, даже 16-битную версию, скомпилированную MS-C, работаю-
- щую в OS/2 1.3, поэтому даже здесь показан размер в 32-битном режиме.
- ";echo -en "\e[47;30m ENTER = main menu ";read;INI;fi;;
- 8)D;echo -en "\e[47;30m"; (E8);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- Спасибо R. P. Byrne за его программу Shrink.Pas, которая вдохновила этот проект
- и из которой был украден алгоритм сжатия; Филу Кацу за размещение в общественном
- достоянии формата файла zip, формата сжатия и расширения имени файла .ZIP, а
- также за принятие незначительных изменений в формате файла; Стиву Бургу за разъ-
- яснениями по поводу формата deflate; Харухико Окумуре и Леониду Броухису за по-
- лезные идеи для алгоритма сжатия; Киту Петерсену, Ричу Уэльсу, Хантеру Гоатли и
- Марку Адлеру за предоставление списка рассылки и ftp-сайта для использования
- группой Info-ZIP; и, самое главное, самой группе Info-ZIP (перечисленной в файле
- infozip.who), без неустанных усилий которых тестирование и исправление ошибок не
- было бы возможным создание переносимого архива. Наконец, мы должны поблагодарить
- (обвинить) первого модератора Info-ZIP, Дэвида Киршбаума, за то, что он вообще
- втянул нас в эту неразбериху. Страница руководства была переписана для Unix RPC
- Rodgers и обновлена E. Gordon для zip 3.0.
- ";echo -en "\e[47;30m ENTER = main menu ";read;INI;fi;;
- 9)D;echo -en "\e[47;30m"; (E9);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;
- echo -e "
- \e[1;36m Pattern matching\e[0m\e[36m Сопоставление с образцом\e[0m
- Этот раздел относится только к Unix. Смотрите это место для получения подробной
- информации о работе MSDOS и VMS. Однако специальные подстановочные знаки * и []
- ниже применимы как минимум к MSDOS.
- Оболочки Unix (sh, csh, bash и другие) обычно выполняют подстановку имени файла
- (также называемую «подстановкой») в аргументах команды. Как правило, специальные
- символы:
- ? соответствует любому одиночному символу
- * соответствует любому количеству символов (включая ни одного)
- [] соответствует любому символу в диапазоне, указанном в скобках (пример: [a-f],
- [0-9]). Эта форма сопоставления с подстановочными знаками позволяет пользователю
- указать список символов между квадратными скобками и, если какой-либо из символов
- соответствует выражению, соответствует. Например:
- zip-архив \"*.[hc]\"
- заархивирует все файлы в текущем каталоге, которые заканчиваются на .h или .c.
- Поддерживаются диапазоны символов:
- zip-архив \"[a-f]*\"
- добавит в архив все файлы, начинающиеся с \"a\" по \"f\".
- Также поддерживается отрицание, когда соответствует любой символ в этой позиции,
- не входящий в список. Отрицание поддерживается добавлением ! или ^ в начало
- списка:
- zip-архив \"*.[!o]\"
- соответствует файлам, которые не заканчиваются на «.o».
- В WIN32 необходимо включить сопоставление [] с параметром -RE, чтобы избежать
- путаницы, вызванной именами с [or].
- Когда эти символы встречаются (без использования обратной косой черты или кавы-
- чек), оболочка будет искать файлы относительно текущего пути, которые соответст-
- вуют шаблону, и заменит аргумент списком совпадающих имен.
- Программа zip может выполнять такое же сопоставление с именами, которые находят-
- ся в изменяемом zip-архиве, или, в случае опций -x (исключить) или -i (включить),
- со списком файлов, над которыми нужно работать, используя обратная косая черта
- или кавычки, чтобы указать оболочке не выполнять расширение имени. В общем, ког-
- да zip встречает имя в списке файлов, он сначала ищет имя в файловой системе.
- Если он находит его, он добавляет его в список файлов для выполнения. Если он не
- находит его, он ищет имя в изменяемом zip-архиве (если оно существует), исполь-
- зуя описанные выше символы сопоставления с образцом, если они есть. Для каждого
- совпадения это имя будет добавлено в список обрабатываемых файлов, если только
- это имя не совпадает с именем, заданным с параметром -x, или не совпадает с
- каким-либо именем, указанным с параметром -i.
- Сопоставление с шаблоном включает в себя путь, поэтому такие шаблоны, как \*.o,
- соответствуют именам, оканчивающимся на \".o\", независимо от префикса пути.
- Обратите внимание, что перед каждым специальным символом (например, ?*[]) должна
- стоять обратная косая черта, или весь аргумент должен быть заключен в двойные
- кавычки (\"\").
- Как правило, используйте обратную косую черту или двойные кавычки для путей с
- подстановочными знаками, чтобы заставить zip выполнять сопоставление с образцом
- для путей к файлам, и всегда для путей и строк, которые содержат пробелы или
- подстановочные знаки для -i, -x, -R, -d и - U и везде, где zip должен
- обрабатывать подстановочные знаки.
- ";echo -en "\e[47;30m ENTER = main menu ";read;INI;fi;;
- 10)D;echo -en "\e[47;30m";(E10);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;
- echo -e "
- \e[1;36m Use\e[0m\e[36m Применение\e[0m
- Программа полезна для упаковки набора файлов для распространения; для архивации
- файлов; и для экономии места на диске путем временного сжатия неиспользуемых
- файлов или каталогов.
- Программа zip помещает один или несколько сжатых файлов в один zip-архив вместе
- с информацией о файлах (имя, путь, дата, время последней модификации, защита и
- контрольная информация для проверки целостности файла). Вся структура каталогов
- может быть упакована в zip-архив с помощью одной команды. Коэффициенты сжатия от
- 2:1 до 3:1 являются общими для текстовых файлов. zip имеет один метод сжатия
- (дефляция), а также может хранить файлы без сжатия. (Если добавлена поддержка
- bzip2, zip также может сжимать с использованием сжатия bzip2, но такие записи
- требуют достаточно современной распаковки для распаковки. Когда выбрано сжатие
- bzip2, оно заменяет дефляцию в качестве метода по умолчанию.) zip автоматически
- выбирает лучший из двух ( deflation или store или, если выбран bzip2, bzip2 или
- store) для каждого сжимаемого файла.
- Формат команды. Основной формат команды
- zip параметры архива inpath inpath ...
- где archive — это новый или существующий zip-архив, а inpath — это путь к ката-
- логу или файлу, который может включать подстановочные знаки. Получив имя сущест-
- вующего zip-архива, zip заменит записи с идентичными именами в zip-архиве (соот-
- ветствующие относительным именам, хранящимся в архиве) или добавит записи для
- новых имен. Например, если foo.zip существует и содержит файлы foo/file1 и
- foo/file2, а каталог foo содержит файлы foo/file1 и foo/file3, то:
- \e[32m zip -r foo.zip foo\e[0m
- или более кратко:
- \e[32m zip -r foo foo\e[0m
- заменит foo/file1 в foo.zip и добавит foo/file3 в foo.zip. После этого foo.zip
- содержит файлы foo/file1, foo/file2 и foo/file3, при этом foo/file2 не изменился.
- Итак, если перед выполнением команды zip foo.zip имеет:
- \e[32m foo/file1 foo/file2\e[0m
- и каталог foo имеет:
- \e[32m file1 file3\e[0m
- тогда foo.zip будет иметь:
- \e[32m foo/file1 foo/file2 foo/file3\e[0m
- где foo/file1 заменяется, а foo/file3 является новым.
- -@ списки файлов.
- Если список файлов указан как -@ [Не в MacOS], zip берет список входных файлов
- из стандартного ввода, а не из командной строки. Например,
- \e[32m zip -@ foo\e[0m
- будет хранить файлы, перечисленные по одному в строке на стандартном вводе в
- foo.zip. В Unix эта опция может быть использована с большим успехом в сочетании
- с командой find (1). Например, чтобы заархивировать все исходные файлы C
- в текущем каталоге и его подкаталогах:
- \e[32m find . -name \"*.[ch]\" -print | zip source -@\e[0m
- (обратите внимание, что шаблон должен быть заключен в кавычки, чтобы оболочка не
- расширяла его). Потоковые вход и выход. zip также примет одно тире (\"-\")
- в качестве имени zip-файла, и в этом случае он запишет zip-файл в стандартный
- вывод, что позволит передать вывод в другую программу. Например:
- \e[32m zip -r - . | dd of=/dev/nrst0 obs=16k\e[0m
- будет записывать выходные данные zip непосредственно на ленту с указанным размером
- блока для резервного копирования текущего каталога. zip также принимает одно тире
- (\"-\") в качестве имени сжимаемого файла, и в этом случае он будет считывать файл
- из стандартного ввода, позволяя zip принимать ввод из другой программы. Например:
- \e[32m tar cf - . | zip backup -\e[0m
- будет сжимать вывод команды tar для резервного копирования текущего каталога.
- Как правило, это обеспечивает лучшее сжатие, чем в предыдущем примере с использо-
- ванием параметра -r, потому что zip может использовать избыточность между файлами.
- Резервную копию можно восстановить с помощью команды
- \e[32m unzip -p backup | tar xf -\e[0m
- Если имя zip-файла не задано и stdout не является терминалом, zip действует как
- фильтр, сжимая стандартный ввод в стандартный вывод. Например,
- \e[32m tar cf - . | zip | dd of=/dev/nrst0 obs=16k\e[0m
- эквивалентно
- \e[32m tar cf - . | zip - - | dd of=/dev/nrst0 obs=16k\e[0m
- zip-архивы, созданные таким образом, могут быть извлечены с помощью программы
- funzip, входящей в пакет unzip, или gunzip, входящего в пакет gzip (но некоторые
- gunzip могут не поддерживать это, если zip использует расширения Zip64).
- Например:
- \e[32m dd if=/dev/nrst0 ibs=16k | funzip | tar xvf -\e[0m
- Поток также можно сохранить в файл и разархивировать. Если включена поддержка
- Zip64 для больших файлов и архивов и zip используется в качестве фильтра,
- zip создает Zip64-архив, для чтения которого требуется распаковка, совместимая с
- PKZIP 4.5 или более поздней версии. Это делается для того, чтобы избежать
- неоднозначности в структуре zip-файла, как определено в текущем стандарте zip
- (PKWARE AppNote), где решение об использовании Zip64 должно быть принято до того,
- как данные будут записаны для записи, но для потока размер данных не известно на
- тот момент. Если известно, что объем данных меньше 4 ГБ, можно использовать пара-
- метр -fz- для предотвращения использования Zip64, но zip завершится с ошибкой,
- если Zip64 действительно необходим. zip 3 и unzip 6 и более поздние версии могут
- читать архивы с записями Zip64. Кроме того, zip удаляет расширения Zip64,
- если они не нужны, при копировании записей архива (см. параметр -U (--copy)).
- При направлении вывода в другой файл обратите внимание, что все параметры
- должны быть указаны до перенаправления, включая -x. Например:
- \e[32m zip archive \"*.h\" \"*.c\" -x donotinclude.h orthis.h > tofile\e[0m
- ZIP-файлы. При изменении существующего zip-архива zip запишет временный файл с
- новым содержимым и заменит старый только тогда, когда процесс создания новой
- версии завершится без ошибок.
- Если имя zip-архива не содержит расширения, добавляется расширение .zip.
- Если имя уже содержит расширение, отличное от .zip, существующее расширение
- остается неизменным. Однако разделенные архивы (архивы, разделенные на несколь-
- ко файлов) требуют расширения .zip для последнего разделения.
- Сканирование и чтение файлов. Когда zip запускается, он сканирует файлы для
- обработки (при необходимости). Если это сканирование занимает более 5 секунд,
- zip отобразит сообщение «Сканирование файлов» и начнет отображать точки прогрес-
- са каждые 2 секунды или каждые несколько обработанных записей, в зависимости от
- того, что занимает больше времени. Если между точками есть более 2 секунд, это
- может указывать на то, что поиск каждого файла занимает время и может означать,
- например, медленное сетевое соединение. (На самом деле начальное сканирование
- файла представляет собой двухэтапный процесс, в котором за сканированием катало-
- га следует сортировка, и эти два этапа разделены пробелом в точках. При обновле-
- нии существующего архива пробел также появляется между сканированием существую-
- щего файла и сканирование нового файла.) Точки сканирования файлов не контроли-
- руются опцией -ds размер точки, но точки отключаются опцией -q тихая.
- Параметр -sf show files можно использовать для сканирования файлов и получения
- списка отсканированных файлов без фактической их обработки.
- Если zip не может прочитать файл, он выдает предупреждение, но продолжает.
- См. параметр -MM ниже, чтобы узнать больше о том, как zip обрабатывает шаблоны,
- которые не совпадают, и файлы, которые не читаются. Если некоторые файлы были
- пропущены, в конце операции zip выдается предупреждение, в котором указывается,
- сколько файлов было прочитано и сколько пропущено.
- Командные режимы. zip теперь поддерживает два различных типа командных режимов:
- внешний и внутренний. Внешние режимы (добавление, обновление и обновление)
- считывают файлы из файловой системы (а также из существующего архива), в то
- время как внутренние режимы (удаление и копирование) работают исключительно с
- записями в существующем архиве.
- \e[32m add\e[0m Обновите существующие записи и добавьте новые файлы.
- Если архив не существует, создайте его. Это режим 'по умолчанию'.
- \e[32m update (-u)\e[0m Обновите существующие записи,
- если они новее в файловой системе, и добавьте новые файлы.
- Если архив не существует, выдайте предупреждение, создайте новый архив.
- \e[32m freshen (-f)\e[0m Обновите существующие записи архива,
- если они новее в файловой системе. Не добавляет новые файлы в архив.
- \e[32m delete (-d)\e[0m Выберите записи в существующем архиве и удалите их.
- \e[32m copy (-U)\e[0m Выберите записи в существующем архиве и скопируйте их в новый архив.
- Этот новый режим аналогичен обновлению, но шаблоны командной строки выбирают
- записи в существующем архиве, а не файлы из файловой системы, и он использует
- параметр --out для записи полученного архива в новый файл, а не для обновления
- существующего архива, оставляя исходный архив без изменений.
- Новый параметр синхронизации файлов (-FS) также считается новым режимом, хотя он
- аналогичен обновлению. Этот режим синхронизирует архив с файлами в ОС, только
- заменяя файлы в архиве, если время файла или размер файла ОС отличаются, добавляя
- новые файлы и удаляя записи из архива, где нет соответствующего файла.
- Поскольку в этом режиме записи из архива могут быть удалены,
- рассмотрите возможность создания резервной копии архива.
- Также см. -DF для создания архивов различий.
- См. описание каждой опции ниже для получения подробной информации
- и раздел ПРИМЕРЫ ниже для примеров.
- Разделить архивы. zip версии 3.0 и выше может создавать разделенные архивы.
- Разделенный архив — это стандартный zip-архив, разделенный на несколько файлов.
- (Обратите внимание, что разделенные архивы — это не просто архивы, разделенные на
- части, так как смещения записей теперь основаны на начале каждого разделения.
- Объединение частей вместе сделает эти смещения недействительными, но unzip обычно
- может справиться с этим. zip обычно отказывается для обработки такого
- объединенного архива, если для исправления смещений не используется опция
- исправления -FF.)
- Одно из применений разделенных архивов — хранение большого архива на нескольких
- съемных носителях. Для разделенного архива с 20 разделенными файлами файлы обычно
- называются (замените ARCHIVE на имя вашего архива) ARCHIVE.z01, ARCHIVE.z02, ...,
- ARCHIVE.z19, ARCHIVE.zip. Обратите внимание, что последний файл — это файл .zip
- Напротив, составные архивы представляют собой исходный многодисковый архив,
- обычно требующий гибких дисков и использующий метки томов для хранения номеров
- дисков. zip поддерживает разделенные архивы, но не составные архивы, хотя
- существует процедура преобразования разделенных архивов нужного размера в
- составные архивы. Обратное также верно, когда каждый файл составного архива может
- быть скопирован, чтобы файлы с указанными выше именами создавали разделенный архив
- Используйте -s, чтобы установить размер разделения и создать разделенный архив.
- Размер указывается в виде числа, за которым может следовать:
- k (кБ), m (МБ), g (ГБ) или t (ТБ) (по умолчанию — m).
- Опцию -sp можно использовать для приостановки архивации zip между разбиениями,
- чтобы, например, можно было заменить съемный носитель,
- но прочтите описания и предупреждения для -s и -sp ниже.
- Хотя zip не обновляет разделенные архивы, zip предоставляет новую опцию
- -O (--output-file или --out),
- позволяющую обновлять разделенные архивы и сохранять их в новом архиве. Например:
- \e[32m zip inarchive.zip foo.c bar.c --out outarchive.zip\e[0m
- читает архив inarchive.zip, даже если он разделен, добавляет файлы foo.c и bar.c
- и записывает полученный архив в outarchive.zip. Если inarchive.zip разделен,
- то outarchive.zip по умолчанию имеет тот же размер разделения.
- Имейте в виду, что если outarchive.zip и любые разделенные файлы, созданные с его
- помощью, уже существуют, они всегда перезаписываются по мере необходимости без
- предупреждения. Это может быть изменено в будущем.
- Юникод. Хотя стандарт zip требует хранения путей в архиве с использованием
- определенного набора символов, на практике zip хранит пути в архивах в любом
- локальном наборе символов. Это создает проблемы, когда архив создается или
- обновляется в системе с использованием одного набора символов, а затем извлекается
- в другой системе с использованием другого набора символов.
- При компиляции с включенной поддержкой Unicode на платформах, поддерживающих
- широкие символы, zip теперь сохраняет в дополнение к стандартному локальному пути
- для обратной совместимости перевод пути UTF-8. Это обеспечивает общий
- универсальный набор символов для хранения путей, который позволяет полностью
- извлекать эти пути в других системах, поддерживающих Unicode, и максимально точно
- сопоставлять их в системах, которые этого не делают.
- В системах Win32, где пути внутренне хранятся в формате Unicode, но представлены
- в локальном наборе символов, возможно, что некоторые пути будут пропущены во время
- сканирования каталога локального набора символов. zip с поддержкой Unicode теперь
- может читать и сохранять эти пути. Обратите внимание, что системы Win 9x и
- файловые системы FAT не полностью поддерживают Unicode.
- Имейте в виду, что окна консоли в Win32 и Unix, например, иногда не точно
- отображают все символы из-за того, как каждая операционная система переключает
- наборы символов для отображения. Однако инструменты навигации по каталогам должны
- показывать правильные пути, если загружены необходимые шрифты.
- Формат командной строки. В этой версии zip обновлена обработка командной строки
- и добавлена поддержка длинных параметров. Короткие варианты принимают форму:
- \e[32m -s[-][s[-]...][value][=value][ value]\e[0m
- где s — короткий вариант из одного или двух символов. Короткая опция, которая
- принимает значение, является последней в аргументе, а все, что следует за ней,
- принимается за значение. Если вариант можно отрицать и \"-\"сразу следует за опцией,
- опция отрицается. Короткие опции также могут быть заданы как отдельные аргументы.
- \e[32m -s[-][value][=value][ value] -s[-][value][=value][ value] ...\e[0m
- Короткие параметры обычно принимают значения либо как часть того же аргумента,
- либо как следующий аргумент. Необязательный u003d также поддерживается. Так
- \e[32m -ttmmddyyyy\e[0m
- and
- \e[32m -tt=mmddyyyy\e[0m
- and
- \e[32m -tt mmddyyyy\e[0m
- все работает. Опции -x и -i принимают списки значений и используют немного другой
- формат, описанный ниже. См. параметры -x и -i. Длинные опционы принимают форму
- \e[32m --longoption[-][=value][ value]\e[0m
- где опция начинается с --, имеет многосимвольное имя, может включать тире в конце,
- чтобы отменить опцию (если опция поддерживает это), и может иметь значение
- (аргумент опции), указанное перед ним знаком u003d (без пробелов).
- Значения также могут следовать за аргументом. Так:
- \e[32m --before-date=mmddyyyy\e[0m
- and
- \e[32m --before-date mmddyyyy\e[0m
- оба работают.
- Длинные названия опций могут быть сокращены до кратчайших уникальных аббревиатур.
- См. описания опций ниже, для которых поддерживаются длинные опции.
- Чтобы избежать путаницы, не сокращайте отрицательную опцию встроенным тире (\"-\")
- перед тире, если вы планируете ее отрицать (анализатор рассмотрит завершающий тире
- например, для опции --some-option с использованием --some - как вариант,
- как часть имени, а не отрицательный тире).
- Это можно изменить, чтобы последний тире в --some- в будущем стал отрицательным.
- ";echo -en "\e[47;30m ENTER = main menu ";read;INI;fi;;
- 11)D;echo -en "\e[47;30m";(E11);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;fZipOptionsA;echo -en "\e[47;30m ENTER = main menu ";read;INI;fi;;
- 12)D;echo -en "\e[47;30m";(E12);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;fZipOptionsB;echo -en "\e[47;30m ENTER = main menu ";read;INI;fi;;
- 13)D;echo -en "\e[47;30m";(E13);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;fZipOptionsC;echo -en "\e[47;30m ENTER = main menu ";read;INI;fi;;
- 14)D;echo -en "\e[47;30m";(E14);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- То же, что и выше, включая скрытые файлы (файлы, начинающиеся с точки):
- \e[32m zip archivename .* *\e[0m
- Создайте Zip-архив с именем, archivename.zip содержащим все файлы MP3 в текущем
- каталоге, без сжатия файлов.
- \e[32m zip -0 archivename *.mp3\e[0m
- Создать zip-архив из файла:
- \e[32m zip file1.zip file1\e[0m
- Создать zip-архив из папки:
- \e[32m zip -r mydir.zip ddir\e[0m
- Создать zip-архив из нескольких файлов:
- \e[32m zip -r file1.zip file1 file2 dir1\e[0m
- Чтобы сжать один или несколько файлов, укажите файлы, которые вы хотите
- добавить в архив, разделенные пробелами, как показано ниже:
- \e[32m zip archivename.zip filename1 filename2 filename3\e[0m
- Чтобы создать Zip-архив каталога, вы должны использовать:
- \e[32m zip -r archivename.zip directory_name\e[0m
- Вы также можете добавить несколько файлов и каталогов в один архив:
- \e[32m zip -r archivename.zip directory_name1 directory_name2 file1 file1\e[0m
- Самый простой пример:
- \e[32m zip stuff *\e[0m
- Пример с путёп к директории:
- \e[32m zip -r /path/to/files/*\e[0m
- ";echo -en "\e[47;30m ENTER = main menu ";read;INI;fi;;
- 15)D;echo -en "\e[47;30m";(E15);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- Pаспаковать zip-архив:
- \e[32m unzip archive.zip\e[0m
- Pаспаковать zip-архив в другой каталог:
- \e[32m unzip zipname -d directoryname\e[0m
- Pаспаковать все zip-архивы:
- \e[32m for f in *.zip ; do unzip \$f ; done\e[0m
- ";echo -en "\e[47;30m ENTER = main menu ";read;INI;fi;;
- 16)D;echo -en "\e[47;30m";(E16);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;echo -e "
- mZip Описание утилиты zip. Package and compress (archive) files.
- Do 23 Mär 2023 20:08:32 CET
- Asciinema: \e[36m https://asciinema.org/a/569619\e[0m
- Github: \e[36m https://github.com/Grannik/mZip\e[0m
- Gitlab: \e[36m https://gitlab.com/grannik/mzip\e[0m
- Sourceforge:\e[36m https://sourceforge.net/projects/mzip/files/\e[0m
- Notabug: \e[36m https://notabug.org/Grannikoleg/mZip\e[0m
- Codeberg: \e[36m https://codeberg.org/Grannik/mZip\e[0m
- Bitbucket: \e[36m https://bitbucket.org/grannikoleg/mzip/src/main/\e[0m
- Framagit: \e[36m https://framagit.org/GrannikOleg/mzip\e[0m
- Gitea: \e[36m https://try.gitea.io/Grannik/mZip.sh\e[0m
- Gogs: \e[36m https://try.gogs.io/Grannik2/mZip\e[0m
- Phacility: \e[36m https://admin.phacility.com/F466791#2592\e[0m
- ";echo -en "\e[47;30m ENTER = main menu ";read;INI;fi;;
- 17)D;echo -en "\e[47;30m";(E17);i=`B`;if [[ $i == enter ]];then echo -en "\ec";stty sane;exit 0;fi;;
- esac;C;done
- }
- fZip
|