Bestanden uitsluiten van een zip-archief

Inhoudsopgave:

Anonim

De eenvoudigste manier om veel specifieke bestanden of een groep overeenkomende bestanden uit een zip-archief uit te sluiten, is door het handige zip-hulpprogramma dat is ingebouwd in de gebruiksvriendelijke gebruikersinterface van Mac OS X over te slaan en naar de opdrachtregel te gaan, waar de krachtige zip-opdracht bevindt zich. Dit is om duizend-en-een redenen nuttig, maar de primaire motivatie voor dit bericht heeft betrekking op de .DS_Store-bestanden die worden gebundeld samen met zip-archieven die op een Mac zijn gemaakt, alleen om een ​​andere machine te vervuilen die het bestand uitpakt, of het nu op een andere is Mac, Windows-pc of Linux.Dat gebeurt standaard met zowel de gebruiksvriendelijke zip-tool als het zip-hulpprogramma voor de opdrachtregel, en dat komt omdat het standaardgedrag van de zip-tools is om verborgen bestanden op te nemen, of ze nu worden weergegeven of niet. Dat is niet noodzakelijkerwijs een slechte zaak en in veel gevallen zou het als nuttig worden beschouwd, maar als je niet wilt dat ze, of welk ander bestand dan ook, in je archieven verschijnen, lees dan verder.

Bestanden uitsluiten van een zip-archief

De basisprincipes van het uitsluiten van bestanden bij het maken van een zip-archief zijn gecentreerd rond de vlag -x, die wordt gebruikt om bestanden van het archief uit te sluiten die overeenkomen met een specifieke naam of patroon. In de basis ziet het er zo uit:

"

zip archief.zip bestanden -x ExcludeMe"

Dit betekent dat u een enkel bestand kunt uitsluiten, bijvoorbeeld met de naam "Nothanks.jpg"

"

zip archive.zip images/ -x Nothanks.jpg"

Laten we een paar specifieke voorbeelden bespreken waarbij dit nuttig is.

Sluit .DS_Store-bestanden uit van Zip-archieven

Dit voorkomt dat de doorgaans onzichtbare Mac-metadata .DS_Store-bestanden worden opgenomen in een zip-archief, die standaard zijn gebundeld:

"

zip -r archiefnaam.zip archiefmap -x .DS_Store"

Als de map echter submappen bevat, wilt u een andere variant van dat commando gebruiken om ook de ds_store-bestanden uit submappen uit te sluiten:

"

zip -r archive.zip directory -x /\.DS_Store"

Opmerking: niet alle shells hebben de aanhalingstekens nodig om deze opdracht goed te laten werken, maar in de bash-shell (de standaard voor Mac OS X) moet je de aanhalingstekens gebruiken om uit te sluiten met jokertekens en patronen.

Specifieke bestandstypen uitsluiten van een zip-archief

Met jokertekens kunt u ook alle bestanden van een bepaald type uitsluiten door te focussen op de extensie. Met deze opdracht wordt bijvoorbeeld een hele map gecomprimeerd, minus eventuele .jpg-bestanden:

"

zip -r archive.zip directory -x .jpg"

Dat kan worden aangepast voor elke specifieke bestandsextensie of patroon dat overeenkomt met een bestandsnaam.

Sluit de .git- of .svn-directory uit van een zip-archief

"

Zip een directory, min .git en de inhoud ervan: zip -r zipdir.zip directorytozip -x .git "

"

Zip een map, zonder de .svn-directory op te nemen: zip -r zipped.zip-directory -x .svn "

Alle verborgen bestanden uitsluiten van een zip-archief

Aangezien patronen en jokertekens kunnen worden gebruikt, kunt u ook alle of alle onzichtbare bestanden en mappen uitsluiten die zo zijn gemaakt door ze vooraf te laten gaan door een punt, of het nu gaat om een ​​map zoals .svn of een individueel bestand zoals .bash_profile of .htaccess.

"

zip -r archiefnaam.zip directorytozip -x ."

Of om alle onzichtbare bestanden uit alle submappen uit te sluiten:

"

zip -r archive.zip map -x /\."

Proost op een commentator op de Macworld-forums voor de precieze syntaxis voor het uitsluiten van die bestanden uit submappen.

Uiteindelijk is dit gewoon een andere reden voor ervaren gebruikers om naar de Terminal te springen om archieven te maken. Met krachtige functies zoals ondersteuning voor jokertekens, uitsluiting en optionele wachtwoordbeveiliging van zips, is het gewoon completer en omdat het allemaal al op de Mac zit, hoef je geen andere app te downloaden om de geavanceerde functies te ondersteunen.

En ja, technisch gezien zou je, als je vastbesloten was om in de gebruikersinterface te blijven, Finder- en Spotlight-zoekoperators kunnen gebruiken om de inhoud van een map in Mac OS X te verfijnen voordat je een archief maakt, of gewoon Alles selecteren en handmatig Command+Klik op elk bestand om het niet op te nemen, maar dat is echt niet efficiënt voor grote archiveringsoperaties.De terminal wint dus voor het gemak, en ondanks dat het gecentreerd is rond de opdrachtregel, is het echt niet ingewikkeld als je eenmaal de basis onder de knie hebt.

Bestanden uitsluiten van een zip-archief