Jag har just installerat imagemagick (tror jag det heter…) och tänkte enbart, i alla fall för tillfället, använda dess convert-kommando. Kommandot har jag fått att fungera alldeles utmärkt, jätteenkelt. Vad jag vill göra är att konvertera jpg-filer till jpg-filer, med den skillnaden att de nya filerna ska ta mindre plats. Bildkvaliteten spelar en väldigt liten roll då det bara rör sig om inskannade (eller på senare tid fotograferade, eftersom det går snabbare och att skannern jag har saknar drivrutin för Linux) papper mestadels innehållande text. Jag har experimenterat lite och fann att texten blir mer än läsbar redan vid en kvalitetssiffra på 40 av 100, så följande kommando gör jobbet perfekt åt mig:
Kod: Markera allt
convert minfil.jpg -quality 40 minfil.jpg
Nu vill jag utföra detta kommando för alla jpg-filer i en mapp och alla dess undermappar med en enda rad och tänkte då använda find, men strular bara till det. Jag misstänker att jag sätter citattecken och liknande på fel ställen helt enkelt, men hur jag än kombinerar skiten så får jag alltid något felmeddelande.
Jag hade tänkt mig en av två möjligheter till konstruktion:
1.
Kod: Markera allt
find . -name "*.jpg" -size 300k print0 | xargs -0 <själva kommandot, och det är nog här det skiter sig>
Kod: Markera allt
find . -name "*.jpg" -size 300k -exec <själva kommandot, men jag kan inte komma på hur man slänger in samma filnamn på två ställen, för {} kan man tydligen bara använda en gång i en sådan sats>