Użyłem „rozpakuj XXX.zip”, aby wyodrębnić plik zip, niestety popełniam błąd.
Teraz chcę usunąć wszystkie pliki i katalogi wygenerowane przez „rozpakuj”.
Jak mogę to cofnąć?
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 {}
-i
edycji :).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ę: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).źródło
Wykonuje zadanie, ponieważ
-Z
wywołujezipinfo
narzędzie i-1
opcję, która wypisuje tylko nazwy plikówMożesz znaleźć więcej szczegółowych informacji na ten temat
man unzip
iman 1 zipinfo
poleceńźródło
Jeśli chcesz wyczyścić katalog po przypadkowym rozpakowaniu bez uprzedniego utworzenia folderu, możesz utworzyć folder, rozpakować do niego, a następnie:
„” 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
źródło
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.
źródło
źródło