J'ai besoin de compresser 80 000 fichiers en plusieurs fichiers zip. Voici la commande que j'utilise:
zip -s 200M photos_test/*
Cependant, j'obtiens l'erreur suivante:
-bash: /usr/bin/zip: Argument list too long
Que puis-je faire pour résoudre le problème, outre le fractionnement manuel des fichiers de dossiers?
Merci
compression
zip
recursive
arguments
anévrisme
la source
la source
-bash: /usr/bin/zip: Argument list too long
peut provoquer dans le cas: 1- en raison de la non-utilisation du-r
commutateur, 2- trop de fichiers pour l'archivage. Ainsi, dans le premier cas, la réponse de @Mat est vraie et dans le second cas, la réponse de @ IgnacioVazquez-Abrams est vraie.Réponses:
Si vous voulez le répertoire entier, vous pouvez simplement utiliser le
-r
commutateur:Cela inclura tous les sous-répertoires de
photos_test
cependant.la source
Le problème semble être l'expansion du "*". Utilisez le nom du dossier ou ".":
Si vous souhaitez inclure le dossier racine dans le zip:
Si vous ne souhaitez pas inclure le dossier racine dans le zip:
la source
la source
find . -mindepth 1 -maxdepth -name '*.json' | zip {YOURZIPFILENAME}.zip -@
si vous n'avez pas besoin de fractionner et que vous souhaitez sélectionner des fichiers par extension.ls photos_test | zip -s 200M -@ photos
-@
fera en sorte que zip lise une liste de fichiers depuis stdin|
va diriger une sortie dels
dans l' entrée dezip
commandeman zip
:la source