Jeg sender inn endel oppgaver og slikt på skolen, og det virker både amatørmessig og forvirrende for foreleserne å få vanlige Zip arkiver laget fra Finder som da inneholder .DS_Store filer og resource forks. Du kan selvføgelig lage script som sletter disse filene, før du lager arkivet, men hadde det ikke vært bedre at zip ikke hadde puttet disse med i det hele tatt?
Jeg lagde dette i Automator, mitt første Automator prosjekt, inntil ikveld hadde jeg aldri åpnet programmet da jeg aldri hadde hatt bruk for det :)
Legg vedlagt fil i ~/Library/Workflows/Applications/Finder mappen.
Nå kan du høyreklikke (controllklikke) på en eller flere filer/mapper og gå til "Automator" og "Make Zip Archive", navnet kan selvfølgelig byttes :) Scriptet oppfører seg akkurat som den vanlige til Finder uten disse Mac OS X filene som bare virker forstyrrende.
En annen fordel er at du kan sjekke ut kildekoden :) Den er skrevet i Perl, og jeg har for treningsskyld kuttet ut å bruke ferdige funksjoner (slik som basename) og istede brukt regex. Så her har du også muligheten til å lære Perl og regex :) Du kan også enkelt legge til støtte for tar.gz og slikt... Da kun en linje kjører systemkall..
system("/usr/bin/zip", "-r", $name, @items, "-x", "*/.DS_Store");
Jeg har også modifisert scriptet her hos meg, men dette er ikke med i Automator scriptet som er lagt med... Jeg har lagt til at .class og .classpath filer heller ikke skal være med da jeg leverer mye Java og foreleseren ikke ønsker disse filene...
system("/usr/bin/zip", "-r", $name, @items, "-x", "*/.DS_Store", "*.class","*/.classpath");
Kildekoden kan brukes fritt uten tillatelse fra meg, men vennligst legg meg med i creditten :)
Leon ons, 07/02/2007 - 16:26
Takk! =)
Hugin ons, 07/02/2007 - 17:07
God ide.
Når det gjelder Java og annen programmering, ville jeg satt opp miljøet til å legge genererte filer i en egen byggemappe. Da slippe du å bry deg med slikt her, og det blir mye lettere å ta backup av prosjektene.
simen ons, 07/02/2007 - 17:32
Joda. Det har jeg. Men må uansett fjerne .DS_Store... Jeg bruker Eclipse til Java. Mye vanskeligere enn å høyreklippe på mappa kan ikke jeg tenke meg dog :)
Gentoo, Debian, pfSense, Mac OS X, Mac OS, A/UX
Macern ons, 07/02/2007 - 17:45
Er det ikke omtrent like enkelt å bruke DropStuff til komprimering? Da slipper man vel også DS_Store og resource fork-filer?
simen ons, 07/02/2007 - 20:56
Joda. Men meninga er å ikke sette igang et annet program også å dra mappa ditt. Er noe enklere å bare høyreklikke. Du kan også som jeg sa i artikkelen enkelt legge på ditt eget filter (slik som å kutte ut *class filer etc.) og du kan også få hvilket som helst komprimeringsstandard med en liten modifikasjon til scriptet. Så kan enkelt få tar.gz, tbz og slikt...
Gentoo, Debian, pfSense, Mac OS X, Mac OS, A/UX
dragehest ons, 07/02/2007 - 22:18
Det første jeg gjorde etter å ha sendt inn to zipfiler til lœreren min er å sjekke mac1 for nyheter. og gjett hvilken artikkel som er øverst, hehe. Takk for fin guide, denne vil bli brukt flittig.
welsti tor, 08/02/2007 - 23:10
Hva er det dere sender som krever zip? Oppgaver er vel vanligvis skrevet i .doc og pittesmå? Dere bruker kanskje andre programmer enn Word og/eller OpenOffice?
simen fre, 09/02/2007 - 01:02
Java oppgaver ofte med ganske mange filer og pakker, reprensentert ved hjelp av mapper i filsystemet.
Mange steder man trenger .zip :) .doc sender jeg aldri inn da jeg ikke har Word... Sender inn .rtf eller .pdf eller Open Office formatet om det skal være noe :)
Mac OS X, Mac OS, A/UX, Debian, pfSense, pkgsrc, Java, Perl, PHP, JavaScript, AppleScript, etc...
Chrononaut tir, 13/03/2007 - 17:22
For de av oss som liker å bruke skallet, så er det enklere/lettere måter å gjøre dette på. Selv bruker jeg zsh, så under følger et eksempel på en zsh-funksjon som gjør dette:
zipdir() { zip "$@".zip -r "$@" -x "*/.DS_Store" }
tjodolv tir, 11/12/2007 - 05:14
Filen finnes ikke :'(
Noen som kan legge den ut igjen?