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