Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: recursive  (gelezen 147 keer)

Offline kfboerne

  • Lid
  • Steunpunt: Nee
recursive
« Gepost op: 2016/12/31, 15:31:58 »
os = Xubuntu 14.04

Ik heb een map met afbeeldingen in het .psd format die ik wil converteren naar het .jpg format. Dat kan met het volgende commando heb ik uit weten te vissen als non-terminaltijger  ;) :

mogrify -format jpg *.psd

Nou zitten in de map met afbeeldingen ook allerlei submappen met .psd afbeeldingen. Mijn vraag is of ik met het recursive commando (-r of -R > ik weet niet of het met een hoofdletter of kleine letter moet?) in bovenstaand commando ingevoegd, automatisch alle .psd files in de mappen en submappen kan omzetten en zo ja, hoe wordt het commando dan. Al googelend vind ik steeds het recursive commando in combinatie met het copy commando (cp). Dus of het ook met het mogrify commando kan is mij onduidelijk.
Een boek doet het altijd...

Online Ron

  • Forumteam
    • r0n
    • Dwarsligger
  • Steunpunt: Ja
Re: recursive
« Reactie #1 Gepost op: 2016/12/31, 16:09:47 »
Type eens alleen mogrify, dan krijg je alle opties.........
OpenStandaard evangelist, OpenSource promotor,  OpenData liefhebber.
Xubuntu gebruiker, liefhebber en tester.
In Nederland bekend als een dwarsligger.

Offline jvecht

  • Lid
    • Just Vecht
  • Steunpunt: Ja
Re: recursive
« Reactie #2 Gepost op: 2016/12/31, 16:11:49 »
Hoi kfboerne,

mogrify is geweldig, maar helemaal niet recursive. Dat moet je dus anders doen. Daarin zijn verschillende voorbeelden van te vinden, maar dit for loopje is wellicht de charmanste wel:

for f in `find . -name "*.jpg"`
do
    convert $f -resize 50% $f.resized.jpg
done

Nou doet deze 50 % verkleinen, dus je moet hem even mixen met die van jou.

Zo, lijkt mij:

for f in `find . -name "*.jpg"`
do
    mogrify $f -format jpg *.psd
done

Even proberen. Nee, zo werkt mogrify niet. Dat moet zo:

for f in `find . -name "*.jpg"`
do
    mogrify $f -format jpg *.psd
done

Maar dat is weer niet recursive. Dat wordt een puzzeltje. Ik kan je ook niet verder helpen. Ik heb hier geen psd bestanden.

groet,

Just
Steunpunt Zoetermeer e.o.   PC of laptop nog XP of Vista? Probeer kosteloos Ubuntu of Xubuntu! Met:
  Boekje "Werken met Xubuntu" 3000+ downloads!
     Het Helpmij Magazine September 2017

Offline vanadium

  • Lid
  • Steunpunt: Nee
Re: recursive
« Reactie #3 Gepost op: 2017/01/01, 18:59:53 »
Ik zou hier mogrify niet gebruiken: mogrify verandert het oorspronkelijke bestand. Als resultaat zal je een jpeg bestand krijgen met nog steeds de psd extensie. Bovendien ben je je originelen kwijt mocht de conversie toch niet het gewenste resultaat geven. Gebruik convert. Is de conversie goed, dan kan je nog de originele wissen.

Sommige programma's zoals cp hebben inderdaad een ingebouwde optie om recursief te werken. mogrify heeft die opties niet. Je kan hier het best met find uit de voeten:
find . -name '*.psd' -execdir  convert  "{}" "{}".jpg \;
Voor elk psd-bestand zal er een geconverteerd bestand aangemaakt worden met de extensie .jpg toegevoegd. Je kan die achteraf hernoemen om de oude extensie psd uit de naam te verwijderen:
find . -name '*.psd.jpg' -exec  rename 's/.psd.jpg/.jpg/'  "{}"  \;
Met een iets ingewikkelder commando zorg je ervoor dat het geconverteerde bestand meteen de eerste keer de juiste naam krijgt: in plaats van het eerste commando komt dan het volgende:

find . -name '*.psd' -execdir  convert  "{}" $(basename "{}" psd)jpg \;

Offline kfboerne

  • Lid
  • Steunpunt: Nee
Re: recursive
« Reactie #4 Gepost op: 2017/01/02, 15:14:42 »
@vanadium : bedankt voor de commando's. Die doen precies wat ik wil  :D . Was ik zelf echt niet opgekomen, hi,hi. In tegenstelling toen ik net met Linux begon te werken en die commando's echt hocus-pocus voor me waren, kan ik nu in elk geval  redelijk begrijpen wat ze doen. Voor een alfa-hoofd als moi is dat al heel wat =D.
Een boek doet het altijd...