Comprimi tutti i file in una directory per riga di comando

Questo è un comando terminale davvero eccezionale che comprime tutti i file all'interno di una directory, trasformandoli in un archivio zip. Offriremo due varianti di esso; uno che rimuove il file di origine originale e lascia solo i file compressi, e un altro comando che lascia intatti i file di origine non compressi. Questo è stato testato e funziona su Mac OS X e Linux.

Comprimi tutti i file in una directory e rimuovi i file di origine

Questa versione comprime tutti gli elementi nella directory corrente e quindi rimuove il file non compresso di origine originale:

for item in *; do zip -m "${item}.zip" "${item}"; done

Ricorda che * indica tutti i file nella directory corrente, quindi assicurati di essere nella directory che desideri comprimere prima di eseguire il comando. Puoi sempre ricontrollare in quale directory stai lavorando con il comando 'pwd'.

Ho provato questo e dopo averlo letto su StevenF e in media ha compresso i file del 66%, che è una riduzione significativa. Se si dispone di download o di altra cartella di archivi ad accesso limitato, questo comando può davvero risparmiare spazio su disco. Ovviamente dal momento che comprime i file, non avrebbe senso utilizzarlo in una directory in cui si accede regolarmente alle cose.

Comprimi tutti i file in una directory, mantieni i file originali

È inoltre possibile utilizzare il comando precedente per comprimere tutti i file all'interno di una directory, ma mantenere i file o le cartelle originali come non compressi. Il comando è praticamente identico, basta lasciare fuori il flag -m:

for item in *; do zip "${item}.zip" "${item}"; done

Ora avrai compresso tutti i file nella presente directory di lavoro (pwd) e anche i file di origine originali rimarranno non compressi.

Questi comandi funzionano in Mac OS X e Linux e probabilmente anche in altre varianti di Unix.

Scopri altri suggerimenti sulla riga di comando se sei interessato.