Muszę skompresować 80 000 plików do wielu plików zip. Oto polecenie, którego używam:
zip -s 200M photos_test/*
Jednak pojawia się następujący błąd:
-bash: /usr/bin/zip: Argument list too long
Co mogę zrobić, aby rozwiązać problem, oprócz ręcznego dzielenia plików folderów?
dzięki
compression
zip
recursive
arguments
aneuryzm
źródło
źródło
-bash: /usr/bin/zip: Argument list too long
może powodować przypadek: 1 - z powodu nieużywania-r
przełącznika, 2 - jest zbyt wiele plików do archiwizacji. Tak więc w pierwszym przypadku odpowiedź @ Mat jest prawdziwa, aw drugim przypadku odpowiedź @ IgnacioVazquez-Abrams jest prawdziwa.Odpowiedzi:
Jeśli chcesz cały katalog, możesz po prostu użyć
-r
przełącznika:Obejmuje to wszystkie podkatalogi
photos_test
chociaż.źródło
Problemem wydaje się być rozszerzenie „*”. Użyj nazwy folderu lub „.”:
Jeśli chcesz uwzględnić folder główny w zipie:
Jeśli nie chcesz dołączać folderu głównego do pliku zip:
źródło
źródło
find . -mindepth 1 -maxdepth -name '*.json' | zip {YOURZIPFILENAME}.zip -@
jeśli nie musisz dzielić i chcesz wybierać pliki według rozszerzenia.ls photos_test | zip -s 200M -@ photos
-@
spowoduje, że zip przeczyta listę plików ze standardowego wejścia|
Rura zostanie przetworzone wyjście zls
na wejściu zzip
poleceniemman zip
:źródło