ZIP fájl kicsomagolása egy megadott mappába

Linux 2 perc olvasás

Gyakori feladat, hogy egy letöltött vagy feltöltött ZIP-fájlt (például egy WordPress sablont, egy weboldal mentését vagy egy alkalmazás telepítőcsomagját) egy adott könyvtárba kell kicsomagolni a szerveren. Ehhez nem kell letöltenie a fájlt a saját gépére: SSH-n bejelentkezve a parancssorban is kicsomagolhatja a kiválasztott mappába.

Az unzip telepítése

A ZIP-fájlokat az unzip parancs csomagolja ki. Sok rendszeren alapból telepítve van, de a minimális szervertelepítésekből gyakran hiányzik. Ha a parancs command not found hibát ad, telepítse:

sudo apt install unzip      # Debian, Ubuntu
sudo dnf install unzip      # AlmaLinux, Rocky Linux

Megosztott tárhelyen nincs sudo, ott az unzip általában már elérhető.

Kicsomagolás egy megadott mappába

Alapértelmezés szerint az unzip az aktuális könyvtárba csomagol ki. A -d kapcsolóval adhatja meg a célmappát:

unzip fontosfajl.zip -d /var/www/teszt

Ha a célmappa nem létezik, az unzip létrehozza, de csak az utolsó szintet. Ha a szülőkönyvtárak sem léteznek, a parancs cannot create extraction directory hibával leáll. Ilyenkor először hozza létre a teljes útvonalat a mkdir -p paranccsal:

mkdir -p /var/www/teszt/uj/mappa
unzip fontosfajl.zip -d /var/www/teszt/uj/mappa

A tartalom megtekintése kicsomagolás előtt

Érdemes előbb megnézni, mi van az archívumban, mert sok ZIP-fájl egy saját gyökérmappát tartalmaz (például sablon/), így a fájlok egy szinttel mélyebbre kerülnek, mint várná:

unzip -l fontosfajl.zip

Hasznos kapcsolók

  • -o: a meglévő fájlokat kérdés nélkül felülírja.
  • -n: a meglévő fájlokat soha nem írja felül, csak a hiányzókat csomagolja ki.
  • -q: csendes mód, nem listázza ki egyenként a fájlokat.
  • -j: a könyvtárszerkezetet elhagyja, minden fájl közvetlenül a célmappába kerül.
  • Egyetlen fájl kicsomagolása: unzip fontosfajl.zip wp-config.php -d /tmp/.

Ha nem adja meg az -o vagy az -n kapcsolót, és a célmappában már van azonos nevű fájl, az unzip minden ütközésnél rákérdez ([y]es, [n]o, [A]ll, [N]one, [r]ename).

Ellenőrzés és jogosultságok

A kicsomagolás után az ls -la /var/www/teszt paranccsal ellenőrizheti a fájlokat. Ha root felhasználóként csomagolt ki egy weboldal könyvtárába, a fájlok a root tulajdonába kerülnek, és a webszerver nem tudja majd írni őket. Állítsa be a megfelelő tulajdonost és jogosultságot a chmod és chown parancsokkal.

Gyakori hibák

  • End-of-central-directory signature not found: a fájl sérült vagy nem teljesen töltődött le, esetleg nem is ZIP-formátumú. A file fontosfajl.zip parancs megmutatja a valódi típusát.
  • Elfogyott a hely: a kicsomagolt tartalom jóval nagyobb lehet a ZIP-fájlnál. Előtte nézze meg a szabad helyet a df -h paranccsal.

A .tar.gz archívumok kezeléséről a tar.gz archívum készítéséről és kicsomagolásáról szóló cikkünk szól.

Vissza: Linux leírások (51)