Saya perlu mengkompres 80.000 file menjadi beberapa file zip. Ini adalah perintah yang saya gunakan:
zip -s 200M photos_test/*
Namun saya mendapatkan kesalahan berikut:
-bash: /usr/bin/zip: Argument list too long
Apa yang bisa saya lakukan untuk mengatasi masalah ini, selain memisahkan file folder secara manual?
Terima kasih
compression
zip
recursive
arguments
aneuryzm
sumber
sumber
-bash: /usr/bin/zip: Argument list too long
dapat menyebabkan dalam kasus: 1- karena tidak menggunakan-r
switch, 2 - ada terlalu banyak file untuk pengarsipan. Jadi dalam kasus pertama, jawaban Mat adalah benar dan dalam kasus kedua, jawaban @ IgnacioVazquez-Abrams benar.Jawaban:
Jika Anda ingin seluruh direktori, Anda cukup menggunakan
-r
sakelar:Itu akan mencakup semua subdirektori
photos_test
sekalipun.sumber
Masalahnya tampaknya adalah perluasan "*". Gunakan nama folder atau ".":
Jika Anda ingin memasukkan folder root di dalam zip:
Jika Anda tidak ingin menyertakan folder root di dalam zip:
sumber
sumber
find . -mindepth 1 -maxdepth -name '*.json' | zip {YOURZIPFILENAME}.zip -@
jika Anda tidak perlu membagi dan ingin memilih file dengan ekstensi.ls photos_test | zip -s 200M -@ photos
-@
akan menyebabkan zip membaca daftar file dari stdin|
kehendak pipa merupakan keluaran darils
ke masukan darizip
perintahman zip
:sumber