Komprimer alle filer i et katalog med kommandolinje

Dette er en veldig fin terminalkommando som komprimerer hver fil i en katalog, og gjør dem til et zip-arkiv. Vi tilbyr to varianter av det; en som fjerner den opprinnelige kildefilen og bare etterlater de komprimerte filene, og en annen kommando som forlater de ukomprimerte kildefilene intakt. Dette har blitt testet og fungerer i Mac OS X og Linux.

Komprimer alle filer i et katalog, og fjern kildefiler

Denne versjonen komprimerer alle elementene i gjeldende katalog og fjerner deretter den ukomprimerte originale kildefilen:

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

Husk at * angir alle filer i gjeldende katalog, så vær sikker på at du er i katalogen du vil komprimere før du utfører kommandoen. Du kan alltid dobbelttjekke hvilken katalog du arbeider med med kommandoen 'pwd'.

Jeg testet dette ut og etter å ha lest det på StevenF, og i gjennomsnitt er det komprimerte filer 66%, noe som er en betydelig reduksjon. Hvis du har en i hovedsak sjelden tilgang til nedlastinger eller annen arkivmappe, kan denne kommandoen virkelig spare diskplass. Åpenbart siden det komprimerer filene, ville det ikke være fornuftig å bruke det i en katalog der ting blir regelmessig åpnet.

Komprimer alle filer i et katalog, opprettholde originale filer

Du kan også bruke kommandoen ovenfor til å komprimere alle filene i en katalog, men opprettholde fortsatt de originale filene eller mappene som ukomprimert. Kommandoen er praktisk talt identisk, bare slipp ut -m-flagget:

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

Du vil nå ha komprimert alle filene i den nåværende arbeidskatalogen (pwd), og de opprinnelige kildefilene forblir på plass også ukomprimert.

Disse kommandoene fungerer i Mac OS X og Linux, og sannsynligvis også andre Unix-varianter.

Sjekk ut flere kommandolinjespisser hvis du er interessert.