Creare archivi zip limitando il numero di files

sderrazza

Nuovo Utente
8
1
Ciao a tutti!
Vi chiedo un aiuto per la creazione di archivi zip.
Supponendo che in una cartella ho molti file, la mi necessità è creare tanti file .zip impostando un limite max di 10 file per ogni archivio.
Esempio: in una cartella, ho 657 files. Il mio obiettivo è creare automaticamente 66 archivi di cui 65 da 10 files ciascuno (perché ho impostato il limite massimo a 10 files per archivio) ed uno da 7.
Usando 7z ho visto che c'è l'opzione di splittare i file, ma questa non fa al caso mio in quanto i miei zip devo essere indipendenti l'uno dall'altro. Anche se i singoli archivi sono di dimensioni diverse l'importante è che venga limitato il numero di files per ogni zip.
Spero di esser stato chiaro.
Grazie a tutti
 

Moffetta88

Moderatore
Staff Forum
Utente Èlite
20,546
12,933
CPU
i5-4690
Dissipatore
DEEPCOOL CAPTAIN 240EX
Scheda Madre
MSI Z97 U3 PLUS
HDD
KINGSTON SSD KC400 240GB
RAM
24GB BALLISTIX SPORT @2133MHz
GPU
STRIX GTX980 DC2OC
Audio
INTEGRATA
Monitor
AOC G2590VXQ
PSU
BEQUIET! System Power 7 500W
Case
DEEPCOOL MATREXX 55
Periferiche
NESSUNA
Net
EOLO 100
OS
UBUNTU/WINDOWS11
Se stai usando una macchina basata su linux puoi usare questo sistema:
Bash:
find . ! -name '*.zip' -type f | xargs -n 10 | awk '{system("zip archivio_"NR".zip "$0)}'
Se invece sei su windows, invece....
Devi aspettare che torno stasera :)
 
  • Mi piace
Reazioni: Tidus88

sderrazza

Nuovo Utente
8
1
[TR][/TR][TR][/TR]
Se stai usando una macchina basata su linux puoi usare questo sistema:
Bash:
find . ! -name '*.zip' -type f | xargs -n 10 | awk '{system("zip archivio_"NR".zip "$0)}'
Se invece sei su windows, invece....
Devi aspettare che torno stasera :)
Grazie! L'ideale sarebbe su windows, ma se non c'è una soluzione fattibile posso fare una vm con Linux.
Grazie!
 

Tidus88

From another world
Utente Èlite
2,038
1,738
CPU
Ryzen 5600X
Dissipatore
Deepcool GAMMAX 400
Scheda Madre
Asus Prime B450-Plus
HDD
MX-500 500GB
RAM
Ballistix 16GB DDR4 3000Mhz
GPU
RTX 3060Ti Dual ASUS
Audio
Edifier R1280db
Monitor
Hisense H55U7A
PSU
Sharkoon Silentstorm Icewind 550W
Case
Corsair 275R Airflow White
Net
SkyWifi FTTH
OS
Windows 10
Se stai usando una macchina basata su linux puoi usare questo sistema:
Bash:
find . ! -name '*.zip' -type f | xargs -n 10 | awk '{system("zip archivio_"NR".zip "$0)}'
Se invece sei su windows, invece....
Devi aspettare che torno stasera :)

@Moffetta, se non ti dispiace potresti spiegarmi cosa fa questa serie di comandi? Sono molto curioso :)
 

Moffetta88

Moderatore
Staff Forum
Utente Èlite
20,546
12,933
CPU
i5-4690
Dissipatore
DEEPCOOL CAPTAIN 240EX
Scheda Madre
MSI Z97 U3 PLUS
HDD
KINGSTON SSD KC400 240GB
RAM
24GB BALLISTIX SPORT @2133MHz
GPU
STRIX GTX980 DC2OC
Audio
INTEGRATA
Monitor
AOC G2590VXQ
PSU
BEQUIET! System Power 7 500W
Case
DEEPCOOL MATREXX 55
Periferiche
NESSUNA
Net
EOLO 100
OS
UBUNTU/WINDOWS11
@Moffetta, se non ti dispiace potresti spiegarmi cosa fa questa serie di comandi? Sono molto curioso :)
Giammai!Segreto professionale tra me e Torvalds!
find . ! -name '*.zip' -type f
Trova tutti i file eccetto gli archivi ZIP
Con il comando xargs -n 10 vai a raggruppare per 10 l'output. Quindi invece di farti l'elenco file per file, ti fa l'output di 10 file per riga
Infine reindirizzi tutto quello che hai ottenuto con le parti precedenti alla creazione degli archivi con
awk '{system("zip archivio_"NR".zip "$0)}' che andrà a creare n archivi con il nome di archivio_1.zip/archivio_2.zip e così via
 
  • Mi piace
Reazioni: Tidus88

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!