Odpowiedzi:
Użyj tego:
unzip -l filename | awk 'BEGIN { OFS="" ; ORS="" } ; { for ( i=4; i<NF; i++ ) print $i " "; print $NF "\n" }' | xargs -I{} rm -v {}
Użyj tego, jeśli jesteś sceptyczny (poprosi o potwierdzenie)
unzip -l filename | awk 'BEGIN { OFS="" ; ORS="" } ; { for ( i=4; i<NF; i++ ) print $i " "; print $NF "\n" }' | xargs -I{} rm -iv {}
awk '{print $4}'
- może być w nazwie pliku ze spacjami $4 $5 $6 ...
. :)
unzip -l foo.zip | awk 'NR>3{print $NF}' | egrep -v '\--|files'|xargs rm -r
Jesteś w trudnym miejscu; standardowe zipinfo(1)
narzędzie nie zapewnia żadnego mechanizmu pozwalającego uzyskać jednoznaczne nazwy plików z archiwum. Ale możesz zbliżyć się:
zipinfo -1 /path/to/zip/file.zip | xargs -d '\n' rm -i
Jeśli masz pewność, że żaden z plików nie ma w nim nowych linii, możesz usunąć -i
opcję rm(1)
(co na pewno stanie się nudne).
unzip -Z -1 <filename.zip> | xargs -I{} rm -v {}
Wykonuje zadanie, ponieważ -Z
wywołuje zipinfo
narzędzie i -1
opcję, która wypisuje tylko nazwy plików
Możesz znaleźć więcej szczegółowych informacji na ten temat man unzip
i man 1 zipinfo
poleceń
Jeśli chcesz wyczyścić katalog po przypadkowym rozpakowaniu bez uprzedniego utworzenia folderu, możesz utworzyć folder, rozpakować do niego, a następnie:
rm -r ` ls folder `
„” jest bardzo przydatne do łączenia łańcuchów poleceń, ale jest bardzo dosłowne.
Komentarze poprawiły tę odpowiedź, jeśli chcesz mieć pewność, że usuwasz również ukryte pliki (co prawdopodobnie robisz), zrób to
rm -r ` ls -A folder `
ls -a
).
ls -A
aby uniknąć błędów podczas wpisywania .
i..
Aby to zrobić w Nautilusie (bez wiersza poleceń), możesz po prostu przejść do miejsca, w którym przypadkowo rozpakowałeś pliki, posortować pliki, klikając kartę „Zmodyfikowane”, a następnie wybrać i usunąć wszystkie pliki oznaczone dokładną godziną uruchomił polecenie rozpakowania.
unzip -Z -1 /path/to/zip/file.zip | xargs -I{} rm -rf {}
-i
edycji :).