Како зиповати или распаковати датотеке са Линук терминала

ЗИП датотеке су универзална архива која се обично користи на Виндовс, мацОС, па чак и Линук системима. Можете креирати зип архиву или распаковати датотеке из једне са неким уобичајеним командама Линук терминала.

ЗИП компримовани формат архивске датотеке

Захваљујући доминацији ЗИП формата у области Виндовс-а, ЗИП датотеке су вероватно најчешћи облик компримоване архиве на свету.

Док су датотеке .тар.гз и тар.бз2 уобичајене на Линук-у, корисници Виндовс-а ће вам вероватно послати архиву у ЗИП формату. А, ако желите да архивирате неке датотеке и пошаљете их кориснику Виндовс-а, ЗИП формат ће бити најлакше и најкомпатибилније решење за све.

зип, распакујте и други услужни програми

Можда већ знате да оперативни системи слични Линуку и Унику, као што је мацОС, имају алате који вам омогућавају да креирате ЗИП датотеке и из њих извлачите датотеке, које се називају зип и распакујте. Али постоји читава породица сродних услужних програма као што су зипцлоак, зипдетаилс, зипсплит и зипинфо.

Проверили смо неке Линук дистрибуције да видимо да ли су ове услужне програме укључиле у стандардну инсталацију. Сви услужни програми су били присутни у Убунту 19.04, 18.10 и 18.04. Били су присутни и на Мањару 18.04. Федора 29 је укључивала зип и унзип, али ниједан од других услужних програма, а то је био случај и за ЦентОС.

Да бисте инсталирали елементе који недостају на Федора 29, користите следећу команду:

sudo dnf install perl-IO-Compress

Да бисте инсталирали елементе који недостају на ЦентОС 7, користите следећу команду:

sudo yum install perl-IO-Compress

Ако било који од зип услужних програма недостаје у Линук дистрибуцији која није горе поменута, користите алатку за управљање пакетима те дистрибуције да бисте инсталирали потребан пакет.

Како направити ЗИП датотеку помоћу зип команде

Да бисте направили ЗИП датотеку, морате да кажете зип-у име архивске датотеке и које датотеке треба да укључите у њу. Не морате да додајете екстензију „.зип“ имену архиве, али нема штете ако то учините.

Да бисте креирали датотеку под називом соурце_цоде.зип која садржи све датотеке Ц изворног кода и датотеке заглавља у тренутном директоријуму, користили бисте ову команду:

zip source_code *.c *.h

Свака датотека је наведена како је додата. Приказује се назив датотеке и степен компресије који је постигнут на тој датотеци.

  7 најбољих ИДЕ за Линук за развој сложеног софтвера са лакоћом

Ако погледате нову ЗИП архиву, можете видети да је екстензија датотеке „.зип“ аутоматски додата зип-ом.

ls -l source_code.zip

Ако не желите да видите излаз из зип-а док се ЗИП датотека креира, користите опцију -к (тиха).

zip -q source_code *.c *.h

Укључујући директоријуме у ЗИП датотекама

Да бисте укључили поддиректоријуме у ЗИП датотеку, користите опцију -р (рекурзивно) и укључите име поддиректоријума у ​​командну линију. Да бисте креирали ЗИП датотеку као и раније и такође укључили поддиректоријум архиве, користите ову команду.

zip -r -q source_code archive/ *.c *.h

Да бисте били пажљиви према особи која ће извлачити датотеке из ЗИП датотеке коју креирате, често је пристојно креирати ЗИП датотеке са датотекама унутар њих које се налазе у директоријуму. Када особа која прими ЗИП датотеку је издвоји, све датотеке се уредно постављају у директоријум на њиховом рачунару.

У следећој команди ћемо архивирати радни директориј и све поддиректорије. Имајте на уму да се ова команда издаје из надређеног директоријума радне фасцикле.

zip -r -q source_code work/

Подешавање нивоа компресије

Можете да подесите колико се компресије примењује на датотеке док се додају у ЗИП архиву. Опсег је од 0 до 9, при чему 0 уопште није компресија. Што је већа компресија, дуже је потребно да се направи ЗИП датотека. За ЗИП датотеке скромне величине, временска разлика није значајна казна. Али онда, за ЗИП датотеке скромне величине, подразумевана компресија (ниво 6) је вероватно довољно добра.

Да бисте добили зип да користи одређени ниво компресије, проследите број као опцију у командној линији, са „-“, овако:

zip -0 -r -q source_code work/

Подразумевани ниво компресије је 6. Нема потребе да наведете опцију -6, али неће нашкодити ако то учините.

zip -r -q source_code work/

Максимални ниво компресије је ниво 9.

zip -9 -r -q source_code work/

Са избором датотека и директоријума који се овде архивирају, разлика између без компресије (ниво 0) и подразумеване компресије (ниво 6) је 400К. Разлика између подразумеване компресије и највишег нивоа компресије (ниво 9) је само 4К.

То можда не изгледа много, али за архиве које садрже стотине или чак хиљаде датотека, мала количина додатне компресије по датотеци би допринела вредној уштеди простора.

Додавање лозинки у ЗИП датотеке

Додавање лозинки у ЗИП датотеке је једноставно. Користите опцију -е (шифровање) и од вас ће бити затражено да унесете лозинку и да је поново унесете ради верификације.

zip -e -r -q source_code work/

Како распаковати ЗИП датотеку помоћу команде унзип

Да бисте издвојили датотеке из ЗИП датотеке, користите команду унзип и наведите назив ЗИП датотеке. Имајте на уму да морате да обезбедите екстензију „.зип“.

unzip source_code.zip

Како се датотеке екстрахују, оне се наводе у прозору терминала.

  Како играти Тотал Вар: РОМЕ ИИ на Линук-у

ЗИП датотеке не садрже детаље о власништву датотеке. Све датотеке које се издвајају имају власника постављеног на корисника који их издваја.

Баш као и зип, унзип има опцију -к (тиха), тако да не морате да видите списак датотека док се датотеке екстрахују.

unzip -q source_code.zip

Екстраховање датотека у циљни директоријум

Да бисте распаковали датотеке у одређени директоријум, користите опцију -д (директориј) и наведите путању до директоријума у ​​који желите да се архива распакује.

unzip -q source_code.zip -d ./development

Извуците ЗИП датотеке заштићене лозинком

Ако је ЗИП датотека направљена са лозинком, унзип ће од вас тражити лозинку. Ако не унесете тачну лозинку, распакивање неће извући датотеке.

unzip -q source_code.zip

Ако вам није стало до тога да вашу лозинку виде други — нити да буде сачувана у вашој историји команди — можете да унесете лозинку у командној линији помоћу опције -П (лозинка). (Морате користити велико „П.“)

unzip -P fifty.treacle.cutlass -q source_code.zip

Искључујући датотеке

Ако не желите да издвојите одређену датотеку или групу датотека, користите опцију -к (искључи). У овом примеру желимо да издвојимо све датотеке осим оних које се завршавају екстензијом „.х“.

unzip -q source_code.zip -x *.h

Преписивање датотека

Претпоставимо да сте распаковали архиву, али сте грешком избрисали неколико екстрахованих датотека.

Брзо решење за то би било да још једном издвојите датотеке. Али ако покушате да извучете ЗИП датотеку у истом директоријуму као и раније, унзип ће од вас затражити одлуку у вези са преписивањем датотека. Очекује се један од следећих одговора.

Осим одговора р (преименуј), ови одговори су осетљиви на велика и мала слова.

и: Да, препиши ову датотеку
н: Не, немојте преписивати ову датотеку
О: Све, препиши све датотеке
Н: Ништа, не препиши ниједну датотеку
р: Преименујте, распакујте ову датотеку али јој дајте ново име. Од вас ће бити затражено ново име.

Да бисте присилили распакивање да бисте преписали све постојеће датотеке, користите опцију -о (препиши).

unzip -o -q source_code.zip

Најефикаснији начин да замените датотеке које недостају био би да распакујете само све датотеке у архиви које нису у циљном директоријуму. Да бисте то урадили, користите опцију -н (никада не препиши).

unzip -n source_code.zip

Гледање унутар ЗИП датотеке

Често је корисно и поучно видети листу датотека унутар ЗИП датотеке пре него што је издвојите. То можете учинити помоћу опције -л (архива листе). Проводи се кроз мање да би се излаз учинио подесним.

unzip -l source_code.zip | less

Излаз приказује директоријуме и датотеке унутар ЗИП датотеке, њихову дужину и време и датум када су додани у архиву. Притисните „к“ да бисте напустили мање.

  Како покренути Линук на иПад-у

Постоје и други начини да се завири унутар ЗИП датотеке који дају различите врсте информација, као што ћемо видети.

Додајте лозинку помоћу команде зипцлоак

Ако сте направили ЗИП датотеку, али сте заборавили да додате лозинку, шта можете да урадите? Можете брзо додати лозинку у ЗИП датотеку помоћу наредбе зипцлоак. Проследите име ЗИП датотеке у командну линију. Биће вам затражено да унесете лозинку. Морате да потврдите лозинку тако што ћете је унети други пут.

zipcloak source_code.zip

Прегледајте детаље о фајлу помоћу команде зипдетаилс

Команда зипдетаилс ће вам показати много информација у вези са ЗИП датотеком. Једини разуман начин да се носи са количином излаза које ова команда може дати је да се кроз мање.

zipdetails source_code.zip | less

Имајте на уму да ће информације укључивати називе датотека чак и ако је ЗИП датотека заштићена лозинком. Ова врста информација се чува у ЗИП датотеци као метаподаци и није део шифрованих података.

Претражите унутар датотеке помоћу зипгреп команде

Команда зипгреп вам омогућава да претражујете унутар датотека у ЗИП датотеци. У следећем примеру желимо да знамо које датотеке у ЗИП датотеци имају текст „кеивал.х“ у себи.

zipgrep keyval.h source_code.zip

Можемо видети да датотеке сленг.ц и гетвал.ц садрже стринг „кеивал.х“. Такође можемо видети да постоје две копије сваке од ових датотека у различитим директоријумима у ЗИП датотеци.

Прегледајте информације помоћу зипинфо команде

Команда зипинфо вам даје још један начин да погледате унутар ЗИП датотеке. Као и раније, пуштамо излаз кроз мање.

zipinfo source_code.zip | less

С лева на десно излаз показује:

Дозволе за фајл
Верзија алатке која се користи за креирање ЗИП датотеке
Оригинална величина датотеке
Дескриптор датотеке (описан у наставку)
Метода компресије (дефлација, у овом случају)
Подаци и временска ознака
Име датотеке и било који директоријум

Дескриптор датотеке се састоји од два знака. Први знак ће бити „т“ или „б“ за означавање текстуалне или бинарне датотеке. Ако је велико слово, датотека је шифрована. Други знак може бити један од четири знака. Овај знак представља тип метаподатака који је укључен у ову датотеку: ниједан, проширено локално заглавље, „додатно поље“ или обоје.

-: Ако ниједно не постоји, знак ће бити цртица
л: ако постоји проширено локално заглавље, али нема додатног поља
к: ако не постоји проширено локално заглавље, али постоји додатно поље
Кс: ако постоји проширено локално заглавље и постоји додатно поље

Поделите датотеку командом зипсплит

Ако желите да пошаљете ЗИП датотеку неком другом, али постоје ограничења у величини или проблеми са преносом датотеке, можете користити зипсплит команду да бисте оригиналну ЗИП датотеку поделили на скуп мањих ЗИП датотека.

Опција -н (величина) вам омогућава да поставите максималну величину за сваку од нових ЗИП датотека. У овом примеру, делимо датотеку соурце_цоде.зип. Не желимо да било која од нових ЗИП датотека буде већа од 100 КБ (102400 бајтова).

zipsplit -n 102400 source_code.zip

Величина коју одаберете не може бити мања од величине било које датотеке у ЗИП датотеци.

Користећи ове команде, можете креирати сопствене ЗИП датотеке, распаковати ЗИП датотеке које примите и обављати разне друге операције на њима без напуштања Линук терминала.