Preciso compactar 80.000 arquivos em vários arquivos zip. Este é o comando que eu uso:
zip -s 200M photos_test/*
No entanto, recebo o seguinte erro:
-bash: /usr/bin/zip: Argument list too long
O que posso fazer para resolver o problema, além de dividir manualmente os arquivos da pasta?
obrigado
compression
zip
recursive
arguments
aneuryzm
fonte
fonte
-bash: /usr/bin/zip: Argument list too long
pode causar no caso: 1 - por não usar o-r
switch, 2 - há muitos arquivos para arquivamento. Assim, no primeiro caso, a resposta de @ Mat é verdadeira e, no segundo caso, a resposta de @ IgnacioVazquez-Abrams é verdadeira.Respostas:
Se você quiser o diretório inteiro, você pode simplesmente usar a
-r
opção:Isso incluirá todos os subdiretórios
photos_test
.fonte
O problema parece ser a expansão do "*". Use o nome da pasta ou ".":
Se você deseja incluir a pasta raiz no zip:
Se você não deseja incluir a pasta raiz dentro do zip:
fonte
fonte
find . -mindepth 1 -maxdepth -name '*.json' | zip {YOURZIPFILENAME}.zip -@
se você não precisar dividir e quiser selecionar arquivos por extensão.ls photos_test | zip -s 200M -@ photos
-@
fará com que o zip leia uma lista de arquivos do stdin|
tubo vontade uma saída dels
na entrada dezip
comandoman zip
:fonte