zip

Pakuje i kompresuje pliki do archiwum ZIP.

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 -0 bez 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 do raport.zip.
  • zip -r projekt.zip projekt/ — pakuje cały katalog projekt/ 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.