Sådan ekskluderes filer fra et zip-arkiv
Indholdsfortegnelse:
Den nemmeste måde at udelukke mange specifikke filer eller en gruppe af matchede filer fra et zip-arkiv er ved at springe over det nemme zip-værktøj, der er indbygget i Mac OS X's brugervenlige brugergrænseflade og gå over til kommandolinjen, hvor kraftfuld zip-kommando ligger. Dette er nyttigt af en million og én grunde, men den primære motivation for dette indlæg vedrører .DS_Store-filerne, som bliver bundtet sammen med zip-arkiver, der er oprettet på en Mac, kun for at rode op på en anden maskine, der udpakker filen, uanset om den er på en anden Mac, Windows PC eller Linux.Det sker med både det venlige zip-værktøj og kommandolinje-zip-værktøjet som standard, og det er fordi zip-værktøjernes standardadfærd er at inkludere skjulte filer, uanset om de vises eller ej. Det er ikke nødvendigvis en dårlig ting, og i mange tilfælde ville det blive betragtet som nyttigt, men hvis du ikke vil have dem, eller nogen anden fil for den sags skyld, skal vises i dine arkiver, så læs videre.
Sådan ekskluderer man filer fra et zip-arkiv
Det grundlæggende ved filekskludering ved oprettelse af et zip-arkiv er centreret omkring flaget -x, som bruges til at udelukke filer fra arkivet, der matcher et bestemt navn eller mønster. På det mest basale vil det se sådan ud:
"zip archive.zip-filer -x ExcludeMe"
Det betyder, at du kan ekskludere en enkelt fil, sig, at den hedder "Nothanks.jpg"
"zip archive.zip images/ -x Nothanks.jpg"
Lad os dække et par specifikke eksempler, hvor dette er nyttigt.
Ekskluder .DS_Store-filer fra zip-arkiver
Dette forhindrer de typisk usynlige Mac-metadata .DS_Store-filer i at blive inkluderet i et zip-arkiv, som er bundtet i som standard:
"zip -r arkivnavn.zip arkivmappe -x .DS_Store"
Hvis biblioteket dog indeholder undermapper, vil du gerne bruge en anden variation af denne kommando for også at udelukke ds_store-filerne fra undermapper:
"zip -r archive.zip bibliotek -x /\.DS_Store"
Bemærk: Ikke alle skaller kræver anførselstegn for at denne kommando fungerer korrekt, men i bash-skallen (standarden for Mac OS X) skal du bruge anførselstegnene til at ekskludere med jokertegn og mønstre.
Ekskluder specifikke filtyper fra et zip-arkiv
Med jokertegn kan du også ekskludere alle filer af en bestemt type ved at fokusere på udvidelsen. For eksempel vil denne kommando zippe en hel mappe, minus eventuelle .jpg-filer:
"zip -r archive.zip bibliotek -x .jpg"
Det kan ændres til en hvilken som helst specifik filtypenavn eller mønster, der matches i et filnavn.
Ekskluder .git- eller .svn-kataloget fra et zip-arkiv
"Zip en mappe, minus .git og dens indhold: zip -r zipdir.zip directorytozip -x .git "
Zip en mappe uden at inkludere .svn-mappen: zip -r zipped.zip-mappen -x .svn "
Ekskluder alle skjulte filer fra et zip-arkiv
… .bash_profile eller .htaccess.
zip -r arkivnavn.zip directorytozip -x ."
Eller for at udelukke alle usynlige filer fra alle undermapper:
"zip -r archive.zip bibliotek -x /\."
I sidste ende er dette blot endnu en grund for superbrugere til at hoppe til terminalen for at oprette arkiver. Med kraftfulde funktioner som understøttelse af jokertegn, udelukkelse og valgfri adgangskodebeskyttelse af lynlåse, er det bare mere fuldt udstyret, og da det hele er inkluderet på Mac'en alligevel, behøver du ikke at downloade en anden app for at understøtte de avancerede funktioner.
Og ja, teknisk set, hvis du var fast besluttet på at blive i brugergrænsefladen, kunne du bruge Finder og Spotlight søgeoperatorer til at indsnævre en mappes indhold i Mac OS X, før du oprettede et arkiv, eller bare Vælg alle og manuelt Kommando+klik på hver fil for ikke at inkludere, men det er virkelig ikke effektivt til store arkiveringsoperationer.Således vinder terminalen ud for nemhedens skyld, og på trods af at den er centreret omkring kommandolinjen, er den virkelig ikke kompliceret, når du først har lært det grundlæggende.