Pokud máte komprimovaný soubor zip, můžete jej rozbalit v příkazovém řádku systému Linux. Příkaz unzip v Linuxu je poměrně všestranný a můžete jej použít k mnohem více než jen k extrahování souboru zip.
V minulosti jsem diskutoval o tom, jak gzipovat složku v Linuxu. Je čas vidět různá použití příkazu unzip. Než to uděláte, ujistěte se, že rozbalení je nainstalováno ve vašem systému. K instalaci příkazu můžete použít správce balíčků vaší distribuce.
Na Ubuntu a Debianu můžete použít tento příkaz:
sudo apt install unzip
Jakmile to ověříte, podívejme se, jak používat rozbalení v terminálu Linux.
Příkaz rozbalit v Linuxu
Příkaz unzip má opravdu jednoduchou syntaxi:
unzip [option] zip_file
Pokud jej použijete k extrahování souboru zip bez jakékoli možnosti, rozbalí se všechny soubory v aktuálním adresáři:
unzip webdesign.zip
Archive: webdesign.zip
inflating: 339252-PAJF05-394.ai
inflating: 339252-PAJF07-322.eps
inflating: 339252-PALBTI-224.ai
inflating: 339252-PALBTL-394.eps
inflating: 339252-PALBTM-53.jpg
inflating: License free.txt
inflating: License premium.txt
A to není to, co byste většinou chtěli. Jen to zaplaví váš aktuální adresář všemi extrahovanými soubory.
ls
339252-PAJF05-394.ai 339252-PALBTI-224.ai 339252-PALBTM-53.jpg 'License premium.txt'
339252-PAJF07-322.eps 339252-PALBTL-394.eps 'License free.txt' webdesign.zip
1. Rozbalte do adresáře
Očekávané chování je takové, že byste měli soubory extrahovat do určitého adresáře, obvykle se stejným názvem jako soubor zip.
Můžete zadat cílový adresář, kam chcete soubory extrahovat.
unzip -d target_directory zip_file
Pokud cílový adresář neexistuje, bude vytvořen. Tímto způsobem však nemůžete vytvářet vnořené adresáře.
Pamatujte, že můžete také umístit cílový adresář na konec, ale ne všechny možnosti lze přidat na konec.
unzip zip_file -d target_directory
2. Zobrazit obsah souboru zip bez rozbalování
Pokud chcete vidět, co soubor zip obsahuje, nemusíte jej vždy nejprve extrahovat. Můžete použít -l
a zobrazí obsah souboru zip.
unzip -l zip_file
Jak vidíte, zobrazuje také časové razítko souborů a skutečnou velikost jednotlivých souborů v bajtech.
[email protected]:$ unzip -l webdesign.zip
Archive: webdesign.zip
Length Date Time Name
--------- ---------- ----- ----
205358 2018-06-18 23:14 339252-PAJF05-394.ai
996906 2018-06-18 23:14 339252-PAJF07-322.eps
213968 2018-06-20 00:00 339252-PALBTI-224.ai
1005362 2018-06-20 00:00 339252-PALBTL-394.eps
305531 2018-06-20 00:00 339252-PALBTM-53.jpg
1462 2018-06-20 09:45 License free.txt
1116 2018-06-20 09:45 License premium.txt
--------- -------
2729703 7 files
Pokud chcete, můžete získat další informace, jako je komprimovaná velikost, kompresní poměr, pomocí podrobného režimu s -v
volba. CRC-32 na výstupu je cyklická kontrola redundance.
[email protected]:$ unzip -v webdesign.zip
Archive: webdesign.zip
Length Method Size Cmpr Date Time CRC-32 Name
-------- ------ ------- ---- ---------- ----- -------- ----
205358 Defl:N 142097 31% 2018-06-18 23:14 792f2380 339252-PAJF05-394.ai
996906 Defl:N 221228 78% 2018-06-18 23:14 440390d3 339252-PAJF07-322.eps
213968 Defl:N 147568 31% 2018-06-20 00:00 cdb64dfc 339252-PALBTI-224.ai
1005362 Defl:N 226727 77% 2018-06-20 00:00 aed3d97a 339252-PALBTL-394.eps
305531 Defl:N 183363 40% 2018-06-20 00:00 e4ced90f 339252-PALBTM-53.jpg
1462 Defl:N 728 50% 2018-06-20 09:45 0eb9e17b License free.txt
1116 Defl:N 558 50% 2018-06-20 09:45 165dd84e License premium.txt
-------- ------- --- -------
2729703 922269 66% 7 files
3. Přepište všechny soubory bez výzvy
Pokud již v adresáři, kam soubory extrahujete, jsou soubory se stejným názvem, budete za každý takový soubor povýšeni. Můžete vynutit přepsání všech souborů pomocí volby -o
.
unzip -o -d target_directory zip_file
4. Nepřepisujte žádné soubory -n
Pokud nechcete, aby byl některý existující soubor přepsán nově extrahovanými soubory, použijte volbu -n (znamená nikdy nepřepisovat).
unzip -n -d target_directory zip_file
5. Aktualizujte soubory a v případě potřeby vytvořte
To se mírně liší v přepsání všech souborů. V tomto případě budou přepsány pouze soubory, které mají novější časové razítko než stávající soubory. Pokud soubor neexistuje, bude vytvořen.
Můžete toho dosáhnout pomocí volby -u:
unzip -u -d target_directory zip_file
6. Aktualizujte existující soubory, ale nevytvářejte žádné
Zde je drobná změna oproti předchozímu příkladu. V tomto případě aktualizuje stávající soubory, pokud mají starší časové razítko, ale nevytvoří žádné nové soubory, i když neexistují.
Volba -f vám to umožňuje:
unzip -f -d target_directory zip_file
7. Extrahujte v tichém režimu
Když soubor rozbalíte, zobrazí se na displeji všechny soubory, které byly extrahovány. Nyní si představte soubor zip, který obsahuje stovky souborů. Pokud jej rozbalíte, vaše obrazovka bude přeplněná výstupem.
Můžete použít tichý režim s volbou -q
a na displeji nic neuvidíte:
unzip -q -d target_directory zip_file
8. Vyloučit soubory z extrakce
Z extrahování můžete také vyloučit určité soubory nebo určitý typ souborů.
unzip zip_file -x file_to_exclude
V mém příkladu řekněme, že nechci extrahovat žádné soubory .eps.
[email protected]:$ unzip webdesign.zip -x *.eps
Archive: webdesign.zip
inflating: 339252-PAJF05-394.ai
inflating: 339252-PALBTI-224.ai
inflating: 339252-PALBTM-53.jpg
inflating: License free.txt
inflating: License premium.txt
To byly některé z nejběžnějších příkladů příkazu unzip v Linuxu. Vždy se můžete podívat na jeho manuálovou stránku, kde se dozvíte o dalších možnostech.
Používáte často nějakou jinou možnost s rozepínáním? Proč se o to s námi nepodělit v komentářích?