Мне нужно сжать 80 000 файлов в несколько файлов ZIP. Это команда, которую я использую:
zip -s 200M photos_test/*
Однако я получаю следующую ошибку:
-bash: /usr/bin/zip: Argument list too long
Что я могу сделать, чтобы решить проблему, кроме разделения файлов папки вручную?
Благодарность
compression
zip
recursive
arguments
aneuryzm
источник
источник
-bash: /usr/bin/zip: Argument list too long
может возникнуть в следующем случае: 1 - из-за неиспользования-r
ключа, 2 - слишком много файлов для архивирования. Таким образом, в первом случае ответ @ Mat верен, а во втором случае ответ @ IgnacioVazquez-Abrams верен.Ответы:
Если вы хотите весь каталог, вы можете просто использовать
-r
переключатель:Это будет включать в себя все подкаталоги,
photos_test
хотя.источник
Кажется, проблема заключается в расширении "*". Используйте имя папки или «.»:
Если вы хотите включить корневую папку в zip:
Если вы не хотите включать корневую папку в zip-архив:
источник
источник
find . -mindepth 1 -maxdepth -name '*.json' | zip {YOURZIPFILENAME}.zip -@
если вам не нужно разбивать и хотите выбирать файлы по расширению.ls photos_test | zip -s 200M -@ photos
-@
заставит zip прочитать список файлов из stdin|
будешь конвейер выход изls
в вход изzip
командыman zip
:источник