Komprimera alla filer i en katalog med kommandoraden

Detta är ett riktigt bra terminalkommando som komprimerar varje fil i en katalog och gör dem till ett zip-arkiv. Vi erbjuder två varianter av det; en som tar bort den ursprungliga källfilen och lämnar bara de komprimerade filerna och ett annat kommando som lämnar de okomprimerade källfilerna intakta. Detta har testats och fungerar i Mac OS X och Linux.

Komprimera alla filer i ett katalog, och ta bort källfiler

Den här versionen komprimerar alla objekt i den aktuella katalogen och tar sedan bort den ursprungliga källkomprimerade filen:

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

Kom ihåg att * betyder alla filer i den aktuella katalogen, så var noga med att du är i katalogen du vill komprimera innan du kör kommandot. Du kan alltid dubbelkontrollera vilken katalog du arbetar med med kommandot "pwd".

Jag testade detta och efter att ha läst det på StevenF och i genomsnitt komprimerade filer 66%, vilket är en signifikant minskning. Om du har en i stort sett sällan åtkomlig nedladdningar eller annan arkivmapp kan detta kommando verkligen spara diskutrymme. Självklart eftersom det komprimerar filerna, skulle det inte vara meningsfullt att använda det i en katalog där saker är regelbundet åtkomliga.

Komprimera alla filer i ett katalog, behåll originalfiler

Du kan också använda kommandot ovan för att komprimera alla filer i en katalog, men behåller fortfarande originalfilerna eller mapparna som okomprimerade. Kommandot är praktiskt taget identiskt, lämna bara -m-flaggan:

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

Du kommer nu att ha komprimerat alla filer i den nuvarande arbetsmappen (pwd) och de ursprungliga källfilerna kommer också att vara på plats okomprimerade också.

Dessa kommandon fungerar i Mac OS X och Linux, och sannolikt även andra Unix-varianter.

Kolla in mer kommandorads tips om du är intresserad.