Skip to main content

Bestanden comprimeren met behulp van de Linux Commandoregel

Santa Run Den Helder 2018 (Juni- 2024)

Santa Run Den Helder 2018 (Juni- 2024)
Anonim

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:

AC DC Highway to Hell
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