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ú. Afile fontosfajl.zipparancs 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 -hparanccsal.
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.