zip pakuje pliki i katalogi do jednego archiwum .zip, jednocześnie je kompresując. To najbardziej uniwersalny format wymiany — otworzysz go na Linuksie, Windowsie i macOS bez żadnych dodatkowych narzędzi. Używasz go, gdy chcesz komuś wysłać kilka plików w jednej paczce, zrobić szybki backup katalogu albo spakować logi przed przesłaniem. W przeciwieństwie do tar, zip od razu kompresuje i przechowuje pliki niezależnie, więc odczytanie jednego z nich nie wymaga rozpakowania całości.
Składnia i najważniejsze opcje
zip [OPCJE] ARCHIWUM.zip PLIK...
-r— rekurencyjnie wchodzi do katalogów i pakuje całą ich zawartość razem z podkatalogami. Bez tego katalog trafi do archiwum pusty.-e— szyfruje archiwum hasłem (zapyta o nie interaktywnie, więc nie zostaje w historii powłoki).-j— „junk paths”: zapisuje same nazwy plików bez ścieżek, więc po rozpakowaniu wszystko ląduje w jednym katalogu.-d— usuwa wskazany plik z istniejącego archiwum bez potrzeby rozpakowywania całości.-x— wyklucza pliki pasujące do wzorca (np.-x "*.log").-9— maksymalny poziom kompresji (skala-0bez kompresji do-9); domyślnie jest-6.-P— podaje hasło bezpośrednio w poleceniu (wygodne w skryptach, ale hasło widać w historii — zwykle lepszy-e).
Przykłady użycia
zip raport.zip raport.pdf notatki.txt— pakuje dwa konkretne pliki doraport.zip.zip -r projekt.zip projekt/— pakuje cały katalogprojekt/wraz z podkatalogami.zip -r kod.zip . -x "*.git/*" "node_modules/*"— pakuje bieżący katalog, pomijając repozytorium Gita i zależności.zip -e prywatne.zip haslo.txt dane.csv— tworzy archiwum zaszyfrowane hasłem.zip -d archiwum.zip stary-plik.txt— wyrzuca jeden plik z gotowego archiwum.
Częste błędy i pułapki
Najczęstsza wpadka to zapakowanie katalogu bez -r — dostajesz archiwum z pustym folderem i zero plików w środku. Pamiętaj też, że zip domyślnie dodaje pliki do istniejącego archiwum, a nie nadpisuje go od zera; jeśli chcesz świeżą paczkę, najpierw usuń stary plik. Szyfrowanie -e używa słabego, starego algorytmu ZipCrypto — do naprawdę wrażliwych danych sięgnij po gpg albo AES z 7z. I klasyk: zip nie zawsze jest zainstalowany domyślnie (osobno od unzip) — na Debianie/Ubuntu doinstalujesz go przez apt install zip.
Powiązane komendy: unzip, tar, gzip, 7z, gpg.