Próbowałem przez jakiś czas i wierzę, że jestem dość blisko tego, ale jestem całkiem nowy dla Uniksa, więc znajdowałem to trudne.Znajdź wszystkie zamki i rozpakuj w miejscu - Unix
Mam folder zawierający wiele folderów, z których niektóre zawierają pliki zip, a niektóre nie. Próbuję rozpakować wszystkie pliki zip w dowolnym podkatalogu w miejscu.
Przykładowo mam:
plików/A/something.java
plików/B/somezipfile.zip
plików/C/someotherfile.zip
plików/D/AnotherZipFile.zip
Chciałbym je rozpakować (zakładając, że zip zawiera tylko pliki .java), aby uzyskać wynik taki jak: files/A/something.ja va
pliki/B/javafile.java
pliki/C/someotherfilefromzip.java
plików/D/Anotherfile.java
Nie przeszkadza mi, jeśli pliki ZIP pozostają lub są usunięte po rozpakowaniu, albo jest w porządku.
Co próbowałem do tej pory.
1) Spodziewałem mogę użyć rur, który Jestem nowy, tak:
find . -name *.zip | unzip
to nie działa.
2) Spędziłem trochę czasu na poszukiwanie, najbliższy mam stosując roztwór Online jest:
find . -name '*.zip' -exec unzip '{}' ';'
rozpina to, ale rozpina je do bieżącego katalogu roboczego, chciałem je rozpakować w miejscu. Ja również nie rozumiem tego polecenia, które chciałbym, jak próbuję się nauczyć.
Każda pomoc jest doceniana.
Dzięki,
To wygląda na dobrą odpowiedź, czy możesz (bardzo szybko) pomóc mi ją zrozumieć? Trochę jestem zdezorientowany na temat potrzeby -exec i {} znaków. – ThePerson
Dodane wyjaśnienie –
Mam problem, jeśli w nazwie pliku zip znajduje się spacja, czy istnieje łatwa do rozwiązania? – ThePerson