Komprese souborů je způsob, jak vytvářet archivy, které nám pomáhají šetřit čas, vytvářet prostor a rychleji stahovat a přenášet software a data. Komprimovaný soubor můžete použít k distribuci souvisejících souborů na internetu, všechny komprimované do jednoho souboru, bez ztráty dat. Pokud potřebujete místo v systému nebo na externím úložném zařízení, můžete soubory komprimovat do menších archivovaných souborů. Občas musíme extrahovat více zazipovaných a rar’d souborů najednou, všechny umístěné v jedné složce. Učinit tak prostřednictvím uživatelského rozhraní Linuxu je poměrně jednoduché; vše, co musíte udělat, je vybrat všechny soubory, které chcete extrahovat, kliknout pravým tlačítkem a pomocí možnosti extrahovat je extrahovat úplně. Skutečný problém je, když chceme provést stejný úkol prostřednictvím příkazového řádku. Může se ukázat jako docela zdlouhavé a upřímně řečeno nelogické, extrahovat jeden po druhém zadáváním příkazů pro extrakci souboru jeden po druhém. Zde přichází bashova smyčka for k záchraně. Můžete jej použít k provádění více podobných operací najednou.
Tento článek popisuje, jak můžete použít smyčku for v bash shellu k extrahování několika souborů následujících typů pomocí příkazového řádku Debianu:
- Zkomprimujte soubory
- Soubory Tar.xz
- Soubory Rar
- soubory 7z
Příkazy a procedury uvedené v tomto článku jsme spustili na systému Debian 10 Buster. Jako příkazový řádek Debianu používáme aplikaci Terminal. Můžete jej otevřít pomocí vyhledávání ve Spouštěči aplikací takto:
Spouštěč aplikací je přístupný pomocí klávesy Windows/Super na klávesnici.
Rozbalte více souborů najednou
Předpokládejme, že složka, v našem případě složka „zip_files“, obsahuje více zazipovaných souborů a my je chceme rozbalit současně.
Zde je návod, jak můžete použít cyklus for ke zjednodušení úlohy:
$ for z in *.zip do unzip $z; done
Zde je návod, jak můžete dosáhnout stejného úkolu pomocí jediného příkazu:
$ for z in *.zip; do unzip "$z"; done
Extrahujte více souborů tar.xz najednou
Předpokládejme, že složka obsahuje více souborů tar.xz a chceme je rozbalit současně.
Zde je návod, jak můžete použít cyklus for ke zjednodušení úlohy:
$ for z in *.tar.xz do tar -xf $z; done
Zde je návod, jak můžete dosáhnout stejného úkolu pomocí jediného příkazu:
$ for z in *.tar.xz; do tar -xf "$z"; done
Unrar více souborů najednou
Pomocí následujícího příkazu můžete rozbalit několik souborů rar najednou.
$ for z in *.rar do unrar e $z; done
Nebo,
$ for f in *.rar; do unrar e “$f”; done
Extrahujte více souborů 7z najednou
Chcete-li extrahovat více souborů 7z najednou, použijte následující příkaz.
$ for z in *.7z do 7z e $z; done
Nebo,
$ for z in *.7z; do 7z e "$z"; done
Pomocí smyčky bash for můžete provést hektický úkol extrahovat více komprimovaných souborů najednou. Tato malá dovednost, kterou jste se naučili v tomto článku, se hodí zvláště tehdy, když musíme extrahovat až stovky komprimovaných souborů současně. Nejen pro extrakci souborů, ale můžete také využít sílu bash „for“ smyčky k provádění různých dalších podobných úkolů, které mohou trvat déle, když je spustíte jeden po druhém.