Ich muss 80.000 Dateien in mehrere Zip-Dateien komprimieren. Dies ist der Befehl, den ich benutze:
zip -s 200M photos_test/*
Ich erhalte jedoch den folgenden Fehler:
-bash: /usr/bin/zip: Argument list too long
Was kann ich tun, um das Problem zu lösen, außer die Ordnerdateien manuell zu teilen?
Vielen Dank
compression
zip
recursive
arguments
aneuryzm
quelle
quelle
-bash: /usr/bin/zip: Argument list too long
kann in folgenden Fällen Folgendes verursachen: 1- Da kein-r
Switch verwendet wird, 2- gibt es zu viele Dateien für die Archivierung. Im ersten Fall ist die Antwort von @ Mat wahr und im zweiten Fall ist die Antwort von @ IgnacioVazquez-Abrams wahr.Antworten:
Wenn Sie das gesamte Verzeichnis möchten, können Sie einfach den
-r
Schalter verwenden:Dies schließt jedoch alle Unterverzeichnisse von ein
photos_test
.quelle
Das Problem scheint die Erweiterung des "*" zu sein. Verwenden Sie den Ordnernamen oder ".":
Wenn Sie den Stammordner in die Zip-Datei aufnehmen möchten:
Wenn Sie den Stammordner nicht in die Zip-Datei aufnehmen möchten:
quelle
quelle
find . -mindepth 1 -maxdepth -name '*.json' | zip {YOURZIPFILENAME}.zip -@
Sie diese Option, wenn Sie nicht teilen müssen und Dateien nach Erweiterung auswählen möchten.ls photos_test | zip -s 200M -@ photos
-@
bewirkt, dass zip eine Liste von Dateien aus stdin liest|
leitet eine Ausgabe vonls
in die Eingabe deszip
Befehls weiterman zip
::quelle