Wie kann ich den Befehl zum Entpacken rückgängig machen?

19

Ich habe "unzip XXX.zip" verwendet, um eine Zip-Datei zu extrahieren, leider mache ich einen Fehler.

Jetzt möchte ich alle von "unzip" erzeugten Dateien und Verzeichnisse löschen.
Wie kann ich es rückgängig machen?

hero2008
quelle

Antworten:

29

benutze das:

unzip -l filename |  awk 'BEGIN { OFS="" ; ORS="" } ; { for ( i=4; i<NF; i++ ) print $i " "; print $NF "\n" }' | xargs -I{} rm -v {}

Verwenden Sie diese Option, wenn Sie skeptisch sind (dies wird Sie zur Bestätigung auffordern).

unzip -l filename |  awk 'BEGIN { OFS="" ; ORS="" } ; { for ( i=4; i<NF; i++ ) print $i " "; print $NF "\n" }' | xargs -I{} rm -iv {} 
Abhijeet Rastogi
quelle
-i
Schlägt fehl,
Das Problem liegt darin, dass awk '{print $4}'- ein Dateiname mit Leerzeichen enthalten sein kann $4 $5 $6 .... :)
Sarnold
1
In Ordnung. Reparierte das auch.
Abhijeet Rastogi
5
FTR dies löscht auch die ursprüngliche zip-Datei
sjr
Mein Weg:unzip -l foo.zip | awk 'NR>3{print $NF}' | egrep -v '\--|files'|xargs rm -r
Zhuguowei
5

Du bist in einer schwierigen Lage; Das Standarddienstprogramm zipinfo(1)bietet keinen Mechanismus, um eindeutige Dateinamen aus einem Archiv abzurufen. Aber Sie können nah kommen:

zipinfo -1 /path/to/zip/file.zip | xargs -d '\n' rm -i

Wenn Sie sicher sind, dass keine der Dateien Zeilenumbrüche enthält, können Sie die -iOption auf entfernen rm(1)(was sicherlich mühsam wird).

Sarnold
quelle
4
unzip -Z -1 <filename.zip> | xargs -I{} rm -v {}

Macht den Job , weil -ZInvokes zipinfoDienstprogramm und -1Option teilt es nur Dateinamen drucken

Weitere Details dazu finden Sie unter man unzipund man 1 zipinfoBefehle

Prathu Baronia
quelle
1

Wenn Sie Ihr Verzeichnis nach dem versehentlichen Entpacken bereinigen möchten, ohne zuerst einen Ordner zu erstellen, können Sie den Ordner erstellen, in diesen entpacken und dann:

rm -r ` ls folder `

"` "ist sehr nützlich, um Befehle zu verketten, aber es ist sehr wörtlich.

Die Kommentare haben diese Antwort verbessert. Wenn Sie sicherstellen möchten, dass Sie auch versteckte Dateien entfernen (was Sie wahrscheinlich tun), tun Sie dies

rm -r ` ls -A folder `
chrispepper1989
quelle
Entschuldigung für die Eile zu der falschen Syntax, kann die Abstimmung entfernt werden?
Chrispepper1989
1
Wenn zip das Überschreiben von Dateien verweigert, werden die Originale gelöscht. Wenn versteckte Dateien entpackt wurden, werden sie nicht entfernt (es sei denn, Sie verwenden ls -a).
Gmarmstrong
1
Oder besser gesagt, ls -Aum Fehler beim Auflisten zu vermeiden .und..
gmarmstrong
0

Um dies in Nautilus zu tun (ohne die Befehlszeile), können Sie einfach zu der Stelle navigieren, an der Sie die Dateien versehentlich extrahiert haben, die Dateien sortieren, indem Sie auf die Registerkarte "Geändert" klicken, und dann alle Dateien auswählen und löschen, die mit der genauen Uhrzeit beschriftet sind hat den Befehl zum Entpacken ausgeführt.

Cameronroytaylor
quelle
1
Bitte lesen Sie die Frage noch einmal sorgfältig durch. Ihre Antwort beantwortet nicht die ursprüngliche Frage. Leider enthält Linux keinen Windows Explorer.
DavidPostill
Ah ja! Mir war bisher nicht in den Sinn gekommen, dass unzip kein Windows-Terminalbefehl war. Vielen Dank! Ich überprüfe, ob Nautilus ähnliche Funktionen hat und bearbeite die Antwort. Ansonsten entferne ich es einfach.
Cameronroytaylor
-1
unzip -Z -1 /path/to/zip/file.zip | xargs -I{} rm -rf {}
Igor Shcheglakov
quelle
2
Während dies die Frage beantworten mag, wäre es eine bessere Antwort, wenn Sie eine Erklärung dafür liefern könnten .
DavidPostill