použijte toto:
unzip -l filename | awk 'BEGIN { OFS="" ; ORS="" } ; { for ( i=4; i<NF; i++ ) print $i " "; print $NF "\n" }' | xargs -I{} rm -v {}
Toto použijte, pokud jste skeptičtí (vyzve vás k potvrzení)
unzip -l filename | awk 'BEGIN { OFS="" ; ORS="" } ; { for ( i=4; i<NF; i++ ) print $i " "; print $NF "\n" }' | xargs -I{} rm -iv {}
Jste v těžké situaci; standardní zipinfo(1) obslužný program neposkytuje žádný mechanismus pro získání jednoznačných názvů souborů z archivu. Ale , můžete se přiblížit:
zipinfo -1 /path/to/zip/file.zip | xargs -d '\n' rm -i
Pokud jste si jisti, že žádný ze souborů neobsahuje nové řádky, můžete odstranit -i možnost rm(1) (což bude jistě nudné).
unzip -Z -1 <filename.zip> | xargs -I{} rm -v {}
Dělá úlohu, protože -Z vyvolá zipinfo utility a -1 volba mu říká, že má tisknout pouze názvy souborů
Další podrobnosti o tom můžete najít prostřednictvím man unzip a man 1 zipinfo příkazy
Počítá GNU/Linux procesy a vlákna dohromady, když omezím jejich počet?
Odstraňte určitý řádek ze souboru historie Bash