Ich habe seit einiger Zeit versucht und glaube, ich bin ziemlich nah daran, aber ich bin ziemlich neu in Unix, so habe ich das schwierig gefunden.Finden Sie alle Reißverschlüsse, und entpacken Sie sie an der Stelle - Unix
Ich habe einen Ordner, der viele Ordner enthält, von denen einige ZIP-Dateien enthalten, einige nicht. Ich versuche, alle Zip-Dateien in beliebigen Unterverzeichnissen an Ort und Stelle zu entpacken.
Zum Beispiel habe ich:
files/A/something.java
Dateien/B/somezipfile.zip
Dateien/C/someotherfile.zip
Dateien/D/AnotherZipFile.zip
Ich möchte sie entpacken (vorausgesetzt, die Reißverschlüsse enthalten nur .java Dateien), um ein Ergebnis zu haben wie: files/A/something.ja va
Dateien/B/javafile.java
Dateien/C/someotherfilefromzip.java
Dateien/D/Anotherfile.java
ich nichts dagegen, wenn die ZIP-Dateien bleiben oder sind nach dem Entpacken gelöscht, ist beides in Ordnung.
Was ich bisher versucht habe.
1) Ich erwartete ich verwenden könnte Rohrleitungen, die ich bin hier zu, wie folgt aus:
find . -name *.zip | unzip
Dies funktioniert nicht.
2) ich einige Zeit mit der Suche verbrachte, wurde in der Nähe I ist eine Lösung online mit:
find . -name '*.zip' -exec unzip '{}' ';'
Diese unzips, sondern sie in das aktuelle Arbeitsverzeichnis entpackt, ich wollte, dass sie an Ort und Stelle entpacken. Ich verstehe auch diesen Befehl nicht, den ich gerne möchte, während ich versuche zu lernen.
Jede Hilfe wird sehr geschätzt.
Danke,
Das sieht wie eine gute Antwort aus, jede Chance, die Sie (sehr schnell) mir helfen könnten, es zu verstehen? Das bisschen Ich bin verwirrt darüber die Notwendigkeit für -exec und die {} Marken. – ThePerson
Erklärung hinzugefügt –
Ich habe ein Problem, wenn ein Leerzeichen im Namen der Zips-Datei ist, gibt es eine einfache Lösung dafür? – ThePerson