Er zijn een aantal verschillende manieren om bestanden te comprimeren met behulp van de Linux-opdrachtregel. Dit artikel bevat praktische voorbeelden die laten zien hoe u de opdracht zip gebruikt om bestanden in uw bestandssysteem te comprimeren en ordenen.
Geritmeerde bestanden worden gebruikt wanneer u ruimte wilt besparen en grote bestanden van de ene plaats naar de andere wilt kopiëren.
Als u 10 bestanden hebt die allemaal 100 megabytes groot zijn en u deze naar een ftp-site moet overbrengen, kan de overdracht aanzienlijk lang duren, afhankelijk van de processorsnelheid.
Als u alle 10 bestanden comprimeert tot één enkel gecomprimeerd archief en de compressie verkleint de bestandsgrootte tot 50 MB per bestand, dan hoeft u slechts de helft van de gegevens over te zetten.
Hoe een archief van alle bestanden in een map te maken
Stel je voor dat je een map met liedjes hebt waarin de volgende MP3-bestanden zitten:
Night Prowler.mp3 |
Houd van hongerige man.mp3 |
Get It Hot.mp3 |
Loop over je heen.mp3 |
Snelweg naar de hel.mp3 |
Als je bloed wilt, heb je it.mp3 |
Laat het zien in flames.mp3 |
Raak te veel aan.mp3 |
Kloppend rond de bush.mp3 |
Girls Got Rhythm.mp3 |
Deze eenvoudige Linux-opdracht illustreert hoe je een archief maakt van alle bestanden in de huidige map met de naam ACDC_Highway_to_Hell.zip:
zip ACDC_Highway_to_Hell *
Tekst scrolt omhoog door het scherm met de bestanden terwijl ze worden toegevoegd.
Verborgen bestanden opnemen in een archief
De vorige opdracht is prima voor het archiveren van alle bestanden in een map, maar deze bevat alleen bestanden die niet zijn verborgen.
Het is niet altijd zo eenvoudig. Stel je voor dat je je thuismap wilde zipten, zodat je een back-up kunt maken op een USB-stick of een externe harde schijf. Uw thuismap bevat verborgen bestanden.
Als u alle bestanden inclusief de verborgen bestanden in een map wilt comprimeren, voert u de volgende opdracht uit:
zip home *. *
Hiermee wordt een bestand met de naam home.zip gemaakt met alle bestanden in de basismap.
(U moet zich in de basismap bevinden om dit te laten werken). Het probleem met deze opdracht is dat deze alleen de bestanden in de basismap bevat en niet de mappen, wat ons naar het volgende voorbeeld brengt.
Alle bestanden en submappen in een zipbestand archiveren
Als u alle bestanden en submappen in een archief wilt opnemen, voert u de volgende opdracht uit:
zip -r home.
Nieuwe bestanden toevoegen aan een bestaand ingepakt archief
Als u nieuwe bestanden aan een bestaand archief wilt toevoegen of de bestanden in een archief wilt bijwerken, gebruikt u dezelfde naam voor het archiefbestand bij het uitvoeren van de zipopdracht.
Stel u bijvoorbeeld voor dat u een muziekmap met vier albums hebt en dat u een archief met de naam music.zip maakt om als back-up te bewaren. Stel je nu voor dat je een week later twee nieuwe albums downloadt. Om de nieuwe albums toe te voegen aan het zipbestand, voert u gewoon dezelfde zipopdracht uit als de vorige week.
Voer de volgende code uit om het originele muziekarchief te maken:
zip -r muziek / home / jouwnaam / muziek /
Als u nieuwe bestanden aan het archief wilt toevoegen, voert u hetzelfde commando opnieuw uit.
Als het zipbestand een lijst met bestanden bevat en een van de bestanden op de schijf is gewijzigd, wordt het gewijzigde bestand bijgewerkt in het zipbestand.
Hoe de bestaande bestanden in een ingepakt archief te updaten
Als u een zip-bestand heeft dat verondersteld wordt elke keer dezelfde bestandsnamen te bevatten en u wilt dat bestand bijwerken met alle wijzigingen die in die bestanden zijn aangebracht, dan -f schakelaar helpt u dit te doen.
Stel je bijvoorbeeld voor dat je een gecomprimeerd bestand hebt met de volgende bestanden:
/ Home / jenaam / documenten / file1 |
/ Home / jenaam / documenten / bestand2 |
/ Home / jenaam / documenten / bestand3 |
/ Home / jenaam / documenten / file4 |
/ Home / jenaam / documenten / file5 |
/ Home / jenaam / documenten / file6 |
Stel je nu voor dat je tijdens de week twee nieuwe bestanden hebt toegevoegd en twee bestanden hebt gewijzigd, zodat de map / home / gebruikersnaam / documenten er nu zo uitziet:
/ Home / jenaam / documenten / file1 |
/ Home / jenaam / documenten / bestand2 |
/ Home / jenaam / documenten / bestand3 |
/ home / gebruikersnaam / documenten / file4 (bijgewerkt) |
/ home / gebruikersnaam / documenten / file5 (bijgewerkt) |
/ Home / jenaam / documenten / file6 |
/ Home / jenaam / documenten / file7 |
/ Home / jenaam / documenten / file8 |
Wanneer u de volgende opdracht uitvoert, bevat het zipbestand de bijgewerkte bestanden (file4 en file5), maar file7 en file8 worden niet toegevoegd.
zip zipfilename -f -r / home / uwnaam / documenten
Hoe verwijder ik bestanden uit een ingepakt archief
Dus je hebt een gigantisch zipbestand gemaakt met honderden bestanden en besef nu dat er vier of vijf bestanden in het zipbestand zitten die je daar niet nodig hebt. Zonder al die bestanden opnieuw te moeten zipen, kun je gewoon de zipopdracht uitvoeren met de -d schakelen als volgt:
zip zipfilename -d naam van bestand in archief
Als u bijvoorbeeld een bestand in het archief hebt met de naam home / documents / test.txt, verwijdert u het met deze opdracht:
zip zipfilename -d home / documents / test.txt
Hoe bestanden van het ene zip-bestand naar het andere te kopiëren
Als u bestanden in één zip-bestand hebt en u deze naar een ander zip-bestand wilt kopiëren zonder ze eerst te extraheren en ze opnieuw in te pakken, gebruikt u de -u schakelaar.
Stel dat je een zipbestand hebt met de naam "variousmusic.zip" met muziek van verschillende artiesten, waaronder AC / DC. U kunt de AC / DC-nummers uit het bestand variousmusic.zip kopiëren naar uw ACDC.zip-bestand met behulp van de volgende opdracht:
zip variousmusic.zip -U --out ACDC.zip "Back_In_Black.mp3"
Het bovenstaande commando kopieert het bestand "Back_In_Black.mp3" van variousmusic.zip naar ACDC.zip.Als het zipbestand waarnaar u kopieert niet bestaat, wordt het gemaakt.
Gebruik van patroonaanpassing en piping om een archief aan te maken
De volgende schakelaar is erg handig omdat je hiermee de uitvoer van andere opdrachten kunt gebruiken om bestanden in je zipbestand in te voegen. Stel dat je een bestand genaamd lovesongs.zip wilt maken, dat elk nummer bevat met het woord 'love' in de titel.
Om de bestanden met liefde in de titel te vinden, kun je de volgende opdracht gebruiken:
find / home / yourname / Music -name * love *
Het bovenstaande commando is niet 100 procent perfect omdat het ook woorden als "klaver" opneemt, maar je snapt het. Als u alle geretourneerde resultaten van de bovenstaande opdracht wilt toevoegen aan een zipbestand met de naam lovesongs.zip, voert u deze opdracht uit:
find / home / yourname / Music -name * love * | zip lovesongs.zip - @
Hoe een gesplitst archief te maken
Als u een back-up van uw computer maakt, maar het enige medium dat u beschikbaar hebt om een back-up van te maken, is een reeks lege dvd's, dan hebt u een keuze. Je kunt bestanden blijven zippen tot het zipbestand 4,8 gigabyte is en de dvd kan branden, of je kunt iets maken dat een gedeeld archief wordt genoemd en dat na het bereiken van de limiet die je opgeeft nieuwe archieven in een set maakt.
Bijvoorbeeld:
zip mymusic.zip -r / home / myfolder / Music -s 670m
Hoe het voortgangsrapport van het pakproces aan te passen
Er zijn verschillende manieren om de uitvoer aan te passen die wordt weergegeven tijdens het aanrippen.
De beschikbare schakelaars zijn als volgt:
- -db = geeft aan hoeveel bytes zijn gecomprimeerd en hoeveel er nog over zijn
- -dc = geeft een telling weer van bestanden die zijn ingepakt en hoeveel er nog te doen zijn
- -dd = toont stippen voor elke 10 MB bestand dat is gecomprimeerd
- -ds = bepaalt hoe vaak stippen verschijnen
- -du = geeft de niet-gecomprimeerde grootte van elk bestand weer
Bijvoorbeeld:
zip myzipfilename.zip -dc -r / home / muziek
Hoe een zip-bestand te repareren
Als u een zip-archief hebt dat is verbroken, kunt u proberen het te repareren met behulp van de -F commando en als dat mislukt, de FF commando.
Dit is handig als u een gedeeld archief hebt gemaakt met behulp van de -s schakelen en u bent een van de archiefbestanden kwijtgeraakt.
Probeer dit bijvoorbeeld eerst:
zip -F myfilename.zip - uit myfixedfilename.zip
en dan
zip -FF mijnbestandsnaam.zip - uit myfixedfilename.zip
Hoe een archief te versleutelen
Als u gevoelige informatie hebt die u in een zipbestand wilt opslaan, gebruikt u de -e commando om het te versleutelen. U wordt gevraagd een wachtwoord in te voeren en het wachtwoord te herhalen.
Bijvoorbeeld:
zip myfilename.zip -r / home / wikileaks -e
Hoe te laten zien wat er wordt geritst
Als u weet dat u een groot archief gaat maken, moet u ervoor zorgen dat de juiste bestanden aan het zipbestand worden toegevoegd. U kunt de verwachte resultaten van een zipopdracht bekijken door de -sf schakelaar.
Bijvoorbeeld:
zip myfilename.zip -r / home / music / -sf
Hoe een archief te testen
Nadat u een back-up hebt gemaakt van bestanden naar een zipbestand, is het verleidelijk om schijfruimte te besparen door de originele bestanden te verwijderen. Voordat u dat doet, is het een goed idee om te testen of het zipbestand correct werkt.
U kunt de -T schakel over om te testen of het zipbestand geldig is.
Bijvoorbeeld:
zip myfilename.zip -T
Uitvoer van deze opdracht wanneer een archief ongeldig is, ziet er ongeveer zo uit:
- zip-waarschuwing: ontbrekende eindsignatuur - waarschijnlijk geen zipbestand
Vergeet niet dat je de -F-opdracht kunt gebruiken om gebroken zip-bestanden te herstellen.
Het is de moeite waard om op te merken dat de -T foutpositieven kan produceren in de zin dat een zip-bestand corrupt is, ook al kun je bij het openen alle bestanden extraheren.
Hoe bestanden uit te sluiten
Soms wilt u bepaalde bestanden van een zipbestand uitsluiten. Als u bijvoorbeeld de bestanden kopieert vanaf uw telefoon of digitale camera, hebt u een combinatie van video's en afbeeldingen. Misschien wil je de foto's zipsen naar photos.zip en video's naar videos.zip.
Hier is een manier om de video's uit te sluiten bij het maken van photos.zip
zip photos.zip -r / home / photos / -x * .mp4
Hoe compressie niveau te specificeren
Wanneer u bestanden comprimeert tot een zipbestand, beslist het systeem of het bestand moet worden gecomprimeerd of alleen moet worden opgeslagen. MP3-bestanden zijn bijvoorbeeld al gecomprimeerd, dus het heeft weinig zin om ze verder te comprimeren; ze worden meestal opgeslagen zoals ze zijn in een zip-bestand.
U kunt echter een compressieniveau tussen 0 en 9 opgeven om een bestand verder te comprimeren. Dit duurt langer, maar het kan aanzienlijke ruimtebesparingen opleveren.
zip myfiles.zip -r / home -5