[linux] Re: Hoe script te maken om creatiemoment van bestand te converteren naar bestandsnaam.

Bart-Jan Vrielink bartjan op vrielink.net
Zo Jun 27 22:00:34 CEST 2010


On 06/27/10 21:18, Julien Michielsen wrote:
> Mijn fototoestel zet foto's op de SD-kaart met  weinig zeggende namen als
> dsc_nnnn.jpg.  Ik gebruik die SD-kaart in twee camera's (Nikon's D50 en D60),
> en de foto's worden in afzonderlijke mappen van de kaart weggeschreven,
> afhankelijk van de camera die de foto wegschrijft (resp. dcim/100ncd50/ of
> dcim/100ncd60/ voor de 50 of 60.
> De bestandsnaam van de foto is afhankelijk van het cameratype (zodat twee
> foto's die ik zojuist op de D60 heb gemaakt de namen dsc_3007.jpg en
> dsc_3008.jpg kunnen heten, terwijl die van gisteravond met de D50 de naam
> dsc_0061.jpg heeft gekregen.
> De bestandsgegevens van de geheugenkaart geven wel precies aan wat de
> creatie- volgorde van de foto's is, en wanneer ik de bestanden voorzichtig
> naar schijf kopieer (cp -p) blijven de attributes bewaard. Van de namen weet
> ik dat dsc_0060 voor dsc_0061 is gemaakt, maar meer zegt het niet.  Nu zou ik
> per map graag de bestandsnaam zo kiezen dat die de datum en de tijd waarop de
> foto genomen is weergeeft.  Op het ogenblik moet ik het doen met een
> nietszeggend dsc_3007.jpg.  Voor de organisatie van mijn foto's zou het veel
> makkelijker zijn wanneer ik  dag en tijd waarop de foto was genomen
> (26-12-09. 9u38) uit de naam was te lezen. Deze zou dan f_0912260938.jpg
> kunnen worden.  Die naam heeft een suk meer inhoud heeft dan de dsc_0065.jpg
> waar ik het nu mee moet doen.
> En de gegevens zijn er. Voor dat bestand, op de SD-kaart staat bv:
> $stat /mnt/c1/dcim/102ncd50/dsc_3007.jpg
> Change: 2009-12-26 09:38:46.000000000 +0100
> (en nog wat andere, minder bruikbare regels)
>
> Maar al weet ik dat de benodigdheden er zijn, toch weet ik niet hoe dit aan te
> pakken.
> Mijn vragen:
> 1-  Wanneer ik de hele sd-kaart (met de diverse subdirs) naar _een_ bestem-
> mingsdirectory heb gekopieerd, hoe loop ik dan met For door de directory heen
> om voor elk bestand een stat-commando uit te voeren (kan FOR maar niet
> begrepen krijgen ;-( )
> 2- Hoe oogst ik datum en tijd uit stat om daaruit een bestandsnaam als
> f_0912260938.jpg samen te stellen.
>    

Als ik je goed begrijp, dan wil je foto's die in exact dezelfde minuut 
gemaakt zijn, dezelfde bestandsnaam geven?

Het volgende spuugt een lijst van mv commando's uit, welke, wanneer 
uitgevoerd, doen wat je wilt (hoop ik...):

find . -name dsc_\*.jpg -printf 'mv -i "%p" f_%Ty%Tm%Td%TH%TM.jpg\n'



More information about the Linux mailing list