Hur man utesluter filer från ett zip-arkiv
Innehållsförteckning:
Det enklaste sättet att utesluta många specifika filer eller en grupp matchande filer från ett zip-arkiv är genom att hoppa över det lätta zippa-verktyget som är inbyggt i Mac OS X:s användargränssnitt och gå över till kommandoraden, där kraftfullt zip-kommando finns. Detta är användbart av en miljon och en anledning, men den primära motivationen för det här inlägget hänför sig till .DS_Store-filerna som buntas ihop med zip-arkiv skapade på en Mac, bara för att belamra en annan maskin som packar upp filen, oavsett om den är på en annan Mac, Windows PC eller Linux.Det händer med både det vänliga zip-verktyget och kommandoradens zip-verktyg som standard, och det beror på att zip-verktygens standardbeteende är att inkludera dolda filer oavsett om de visas eller inte. Det är inte nödvändigtvis en dålig sak och i många fall skulle det anses användbart, men om du inte vill att de, eller någon annan fil för den delen, dyker upp i dina arkiv, läs sedan vidare.
Hur man utesluter filer från ett zip-arkiv
Grunderna i filexkludering när du skapar ett zip-arkiv är centrerade kring flaggan -x, som används för att exkludera filer från arkivet som matchar ett specifikt namn eller mönster. När det är som mest grundläggande kommer det att se ut så här:
"zip archive.zip-filer -x ExcludeMe"
Betyder att du kan utesluta en enskild fil, säg att den heter "Nothanks.jpg"
"zip archive.zip images/ -x Nothanks.jpg"
Låt oss ta upp några specifika exempel där detta är användbart.
Uteslut .DS_Store-filer från zip-arkiv
Detta kommer att förhindra att de typiskt osynliga Mac-metadata .DS_Store-filerna inkluderas i ett zip-arkiv, som är paketerat som standard:
"zip -r arkivnamn.zip arkivkatalog -x .DS_Store"
Om katalogen dock innehåller underkataloger, vill du använda en annan variant av det kommandot för att utesluta ds_store-filerna också från underkataloger:
"zip -r archive.zip katalog -x /\.DS_Store"
Notera: inte alla skal kräver citattecken för att det här kommandot ska fungera korrekt, men i bash-skalet (standard för Mac OS X) måste du använda citattecken för att utesluta med jokertecken och mönster.
Uteslut specifika filtyper från ett zip-arkiv
Med jokertecken kan du även exkludera alla filer av en viss typ genom att fokusera på tillägget. Till exempel kommer detta kommando att zippa en hel katalog, minus eventuella .jpg-filer:
"zip -r archive.zip katalog -x .jpg"
Som kan modifieras för ett specifikt filtillägg eller mönster som matchas i ett filnamn.
Uteslut .git- eller .svn-katalogen från ett zip-arkiv
"Zip en katalog, minus .git och dess innehåll: zip -r zipdir.zip directorytozip -x .git "
Zip en mapp, utan att inkludera .svn-katalogen: zip -r zipped.zip-katalog -x .svn "
Uteslut alla dolda filer från ett zip-arkiv
… .bash_profile eller .htaccess.
zip -r arkivnamn.zip katalogtozip -x ."
Eller för att utesluta alla osynliga filer från alla underkataloger:
"zip -r archive.zip katalog -x /\."
Skål till en kommentator på Macworld-forum för den exakta syntaxen för att utesluta dessa filer från underkataloger också.
I slutändan är detta bara ytterligare ett skäl för avancerade användare att hoppa till terminalen för att skapa arkiv. Med kraftfulla funktioner som stöd för jokertecken, uteslutning och valfritt lösenordsskydd för blixtlås, är den bara mer fullfjädrad, och eftersom allt ingår på Mac ändå behöver du inte ladda ner en annan app för att stödja de avancerade funktionerna.
Och ja, tekniskt sett, om du var fast besluten att stanna i användargränssnittet kunde du använda sökoperatorerna Finder och Spotlight för att begränsa innehållet i en mapp i Mac OS X innan du skapar ett arkiv, eller bara Välj alla och manuellt Kommando+klicka på varje fil för att inte inkludera, men det är verkligen inte effektivt för stora arkiveringsoperationer.Således vinner terminalen för enkelhetens skull, och trots att den är centrerad kring kommandoraden är den verkligen inte komplicerad när du väl lär dig grunderna.