GNU/Linux >> Znalost Linux >  >> Linux

jak mohu vyhledat soubory a zazipovat je do jednoho souboru zip

Příkaz, který použijete, spustí zip pro každý soubor zvlášť, zkuste toto:

find . -name <name> -print | zip newZipFile.zip [email protected]

[email protected] řekne zipu, aby četl soubory ze vstupu. Z man zip(1),

[email protected] seznamy souborů. Pokud je seznam souborů zadán jako [email protected] [Ne na MacOS], zip přebírá seznam vstupních souborů ze standardního vstupu místo z příkazového řádku.


Vaše odpověď je blízko, ale toto by mohlo fungovat lépe:

find -regex 'regex' -exec zip filname.zip {} +

Tím se všechny odpovídající soubory vloží do jednoho souboru zip s názvem filename.zip. Nemusíte si dělat starosti se speciálními znaky v názvu souboru (jako je zalomení řádku), což byste udělali, kdybyste výsledky předávali potrubím.


Můžete také zadat názvy jako výsledek příkazu find:

zip name.zip `find . -name <name> -print`

Toto je funkce shellu, který používáte. Můžete hledat "backticks", abyste zjistili, jak to váš shell zvládne.


Linux
  1. Jak extrahovat soubory .gz a .tar.gz v Linuxu

  2. Jak mohu vyhledat víceřádkový vzor v souboru?

  3. Jak mohu vyhledat soubor podle jeho názvu a částečné cesty?

  1. Jak hledat soubory podle velikosti a přípony?

  2. Hledat v adresáři soubory a výsledek výstupu do textového souboru?

  3. Jak zobrazím názvy souborů, které obsahují dva znaky a jeden z nich je c?

  1. Jak hledat obsah v souborech

  2. Jak auditovat změny souborů a spouštění souborů v Linuxu

  3. Jak vyhledat soubor v souborech war,ear a jar rekurzivně v Linuxu