Pokud nemáte a nemůžete nainstalovat zipinfo z jakéhokoli důvodu jej můžete napodobit pomocí unzip s -Z volba. Pro výpis obsahu zip použijte unzip -Z1 :
pw="$(unzip -Z1 file1.zip | cut -f1 -d'.')" 
unzip -P "$pw" file1.zip
Dejte to do smyčky:
zipfile="file1.zip"
while unzip -Z1 "$zipfile" | head -n1 | grep "\.zip$"; do
    next_zipfile="$(unzip -Z1 "$zipfile" | head -n1)"
    unzip -P "${next_zipfile%.*}" "$zipfile"
    zipfile="$next_zipfile"
done
nebo rekurzivní funkce:
unzip_all() {
    zipfile="$1"
    next_zipfile="$(unzip -Z1 "$zipfile" | head -n1)"
    if echo "$next_zipfile" | grep "\.zip$"; then
        unzip -P "${next_zipfile%%.*}" "$zipfile"
        unzip_all "$next_zipfile"
    fi
}
unzip_all "file1.zip"
-Z režim zipinfo(1). Pokud je první volba na příkazovém řádku -Z, zbývající volby se považují za volby zipinfo(1). Popis těchto možností naleznete na příslušné manuálové stránce.
-1 :vypíše pouze názvy souborů, jeden na řádek. Tato možnost vylučuje všechny ostatní; záhlaví, upoutávky a komentáře k zipfile se nikdy netisknou. Je určen pro použití v unixových shell skriptech.
 Zeptejte se zipinfo pro název souboru uvedený v souboru zip a poté jej zachyťte pro heslo. Použijte toto heslo k rozbalení souboru:
pw=$(zipinfo -1 file1.zip | cut -d. -f1)
unzip -P "$pw" file1.zip
 Všimněte si, že příznak zipinfo je jedna není ell .
Když si půjčíme od Gillesovy odpovědi na podobnou otázku, zde je bashová smyčka, která rozbalí vnořený soubor zip chráněný heslem, dokud nebudou žádné další soubory zip:
shopt -s nullglob
while set -- *.zip; [ $# -eq 1 ]
do 
  unzippw "$1" && rm -- "$1"
done
 Kde jsem definoval funkci unzippw jako obal pro zipinfo a unzip výše uvedené příkazy:
unzippw ()
{
    local pw=$(zipinfo -1 "$1" | cut -d. -f1)
    unzip -P "$pw" "$1"
}