Mam wiele plików zip a.zip, b.zip, c.zip, ... i chcę wyodrębnić każdy z nich do nowych folderów odpowiednio a, b, c, ... za pośrednictwem terminala.
Właściwie to, czego chcę, to rozwiązanie, z którego mogę później skorzystać, find
ponieważ mam wiele folderów 2014, 2013, 2012, ... każdy z nich zawiera wiele plików zip a.zip, b.zip itp. Jeśli to zrobię find . -name "*.zip" -exec {} unzip \;
rozpakuje wszystkie pliki i umieści je w odpowiednim folderze nadrzędnym.
command-line
zip
Michał
źródło
źródło
Odpowiedzi:
Powinieneś być w stanie użyć
-d
opcji rozpakowania, aby ustawić alternatywny katalog dla zawartości archiwum.i tak dalej. W ramach
find
wyrażenia powinieneś być w stanie uzyskać nazwę katalogu z nazwy pliku zip za pomocą rozszerzenia parametrów powłoki, np.Najpierw przetestuj, dodając
echo
ielub coś w tym rodzaju
źródło
test it first…
częśćfind
potrzebuje katalogu, więcfind . -name ...
find
( „.
Zakłada się, że nie określono punktu początkowego .” )Sam tego szukałem, ale zdałem sobie sprawę, że zrobiłem to już z innymi poleceniami i można to zastosować do niemal wszystkiego innego, tak jak już to robiłem.
Metoda znajdowania jest szalenie skomplikowana bez powodu.
źródło
.zip
przyrostkiem? Prosić o przyjaciela.Po prostu użyj
źródło
Musiałem też to zrobić za pomocą unrar. Można to osiągnąć przez drobną modyfikację kodu Kencindera.
PS: Chciałem dodać to jako komentarz, ale nie mam wystarczającej liczby punktów reputacji!
źródło