Как да използвате командите zip и unzip в Linux?

Когато изтегляте файлове от интернет, много често те са под формата на архив. Целта на този архив е да намали размера на изтеглянето, да намали броя на файловете и понякога да осигури допълнителна защита с помощта на пароли. Има много видове архиви, .tar, tar.gz, tar.bz2, zip, 7z. В тази публикация ще обсъдим zip архиви.

Zip е един от най-широко използваните архивни файлови формати, който поддържа компресиране на данни без загуба. Можете дори да разархивирате .zip файлове в Windows, които са създадени в Linux!

В повечето сценарии zip е наличен още с инсталирането на дистрибуцията, но ще ви покажем как можете да го инсталирате в случай, че липсва.

Как да използвате командите zip и unzip в Linux?

1. Инсталиране на unzip и zip на Ubuntu и Debian дистрибуции

За да използвате командите на Debian и Ubuntu дистрибуции, можете лесно да ги инсталирате с мениджъра на пакети apt:

$ sudo apt install unzip
$ sudo apt install zip

2. Инсталиране на unzip и zip на Fedora и Centos дистрибуции

При Fedora и Centos дистрибуции, можете да ги инсталирате по аналогичен начин, но с мениджъра на пакети yum:

$ sudo yum install unzip
$ sudo yum install zip

След като инсталацията приключи, можете да проверите пълния път до бинарния файл със следната команда:

$ which unzip

Ще получите изходен код подобен на:

$ /usr/bin/unzip

Това може да бъде полезно при отстраняване на проблеми, свързани с командата или когато искате да проверите версията, която изпълнявате.

Можете да проверите версията със следната команда:

$ /usr/bin/unzip -v 

Delta Marketplace - как да създадете VPS с предварително инсталиран софтуер с няколко клика?

3. Създаване на zip архив в Linux

За да създадем zip архив от няколко файла, трябва да използваме следната команда:

$ zip backup.zip file1.txt file2.txt file3.txt

4. Разархивиране на zip архив в Linux

По подразбиране всички файлове и поддиректории се пресъздават в текущата директория. Лесно можем да разархивираме файла backup.zip в настоящата директория, със следната команда:

$ unzip backup.zip

В случай, че искаме да разархивираме файловете в друга директория, трябва да добавим опцията -d:

$ unzip -d /home/deltabg/new/dir backup.zip

По подразбиране разархивирането отпечатва имената на всички файлове, когато приключи.

Използвайте опцията -q, за да потиснете отпечатването на тези съобщения:

$ unzip -q backup.zip

5. Добавяне на файл към zip архив

Веднъж след като сте създали zip архив, можете лесно да добавите файл към него. Използвайте опцията -u:

$ zip -u backup.zip newfile.txt

6. Премахване на файл от zip архив

След като сте създали zip архив, винаги можете да премахнете или изтриете файл от него. За целта използвайте следната команда:

$ zip -d backup.zip newfile.txt

7. Показване на съдържанието на zip архив

За да видите съдържанието на zip файл, използвайте опцията -l:

$ unzip -l backup.zip

8. Преместване на файл в zip архив

Тази опция изтрива целевите файлове, след като създаде zip архив. Полезна е, в случай че имате малко дисково пространство на машината, но е и потенциално опасна и се препоръчва да се използва с опцията -T, за тестване на архива, преди да премахне всички входирани файлове.

$ zip -Tm backup.zip newfile.txt

Командата първо ще тества целостта на zip архива, за да се увери, че не е повреден. След това ще добави файла newfile.txt към архива, като същевременно ще изтрие оригиналния файл.

9. Рекурсивно архивиране на директории и файлове

Опцията -r се използва за рекурсивно включване на всички файлове и поддиректории в определената директория. Това означава, че всички файлове в директорията и нейните поддиректории ще бъдат добавени към zip архива.

$ zip -r backup.zip directory

10. Изключване на файл при архивиране

При създаване на zip архив, можете да изключите файл. Това става със следната команда:

$ zip -r dir.zip dir/ -x dir/file1.txt

Това ще генерира рекурсивен архив на директорията dir/, но ще изключи файла dir/file1.txt.

11. Изключване на файл при разархивиране

Когато не искате да изваждате даден файл от архива, можете да го направите по следния начин:

$ unzip dir.zip -x dir/file2.txt

По този начин файлът dir/file2.txt няма да бъде разархивиран.

Можете да използвате и следния пример, в случай че искате да изключите определен тип файлове:

$ unzip dir.zip -x "*.webp/*"

Всички файлове с разширение .webp, няма да бъдат извадени от архива.

12. Презаписване на zip файл

Понякога се налага да разархивирате един файл, на място където вече съществува. В този случай ще получите съобщение, дали искате да замените този файл.

[y]es, [n]o, [A]ll, [N]one, [r]ename

За да избегнете подобно съобщение, трябва да добавите опцията -o към unzip.

Когато стартирате командата unzip -o в Linux, тя ще извлече файловете от посочения zip архив и ще презапише всички съществуващи файлове със същото име в целевата директория, без да иска потвърждение.

Струва си да се отбележи, че опцията -o трябва да се използва с повишено внимание, тъй като потенциално може да презапише важни файлове и да причини загуба на данни. Винаги е добра идея да направите резервно копие на всички файлове, които планирате да презапишете, преди да изпълните тази команда.

13. Разархивиране на zip без презаписване

Опцията -n означава "никога не презаписва" и инструктира разархивирането да пропусне извличането на всички файлове, които вече съществуват в целевата директория.

$ unzip -n dir.zip 

Това може да бъде полезно в ситуации, в които искате да извлечете само нови или актуализирани файлове от zip архив, без да презаписвате съществуващи файлове.

Въпреки това е важно да се отбележи, че ако използвате опцията -n и вече има съществуващи файлове със същото име в целевата директория, извличането на тези файлове от zip архива ще бъде пропуснато и няма да бъдете уведомени за това.

14. Създаване на zip файл защитен с парола

В случай, че архивът ви съдържа чувствителна информация или  просто искате да го защитите с парола, можете да използвате следната команда:

$ zip -er dir.zip dir

Опцията -e позволява криптиране за вашия zip файл. След това ще бъдете попитани за паролата, с която искате да защитите файла.

15. Разархивиране на zip файл защитен с парола

Опцията -P, последвана от стойността на паролата, предоставя паролата, необходима за дешифриране на съдържанието на архива. Така че, когато стартирате командата unzip -P в Linux с правилната парола, тя ще извлече файловете от защитения с парола zip архив.

$ unzip -P password dir.zip

Струва си да се отбележи, че това не е най-сигурният подход, тъй като паролата ще бъде видима в обикновен текст за всеки, който има достъп до хронологията на командите. По-сигурен подход е да използвате защитен с парола файл или мениджър на пароли, за да съхраните паролата и да я въведете интерактивно, когато бъдете подканени при разархивиране.

В заключение, командите zip и unzip са мощни инструменти за работа с компресирани файлове в Linux. С помощта на тези команди потребителите могат лесно да архивират и разархивират файлове и директории, което улеснява прехвърлянето и споделянето на големи количества данни. Гъвкавостта и мощността на тези инструменти ги прави съществена част от инструментариума на всеки Linux потребител.

Детелин Илиев

Детелин Илиев

Детелин има над 5 годишен опит с Linux и е добре запознат с интерфейса му и работата под команден ред. Разполага със Cpanel сертификат, познава отлично Cpanel средата и с лекота управлява уеб хостинг акаунти. Има богат опит с WordPress и в свободното си време използва платформата за създаване на съдържание.

Абонирайте се за Delta Cloud бюлетин

Абонирайте се за бюлетина на Delta Cloud, за да получавате ексклузивни оферти, актуални новини, статистики и ценна информация за облачните технологии, информационната сигурност и услугите, които предлагаме.