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?

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 {} 


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).


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


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 `

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.


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 {}

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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.