Als je vanaf de command-line op bijvoorbeeld Linux of Mac OSX, of een Linux Shell in Windows, wilt zorgen dat je alleen download als een bestand nieuwer is dan de versie die je lokaal hebt, is er een handig bash-shell-script op basis van "curl". De oorspronkelijke versie is ontwikkeld door Matthijs Laan van B3 Partners. Het script is bij dit artikel aangehecht.


Als je een bestand hebt aangekocht krijg je per email, of via het geotoko.nl portaal een URL waarin ook je persoonlijke "key" zit. Je kunt het bestand downloaden via de browser of met tools als curl of wget. Het bestand heeft echter steeds dezelfde naam en kan steeds vernieuwd zijn. 

Bijvoorbeeld er is iedere maand een nieuwe versie van de BAG bestanden. Hoe weet je nu of je moet downloaden? Je kunt naar de datum van het bestand kijken of het bestand VERSION.txt uit dezelfde folder raadplegen, maar handiger is het aangehechte script te gebruiken. Deze zal het bestand altijd de eerste keer downloaden, en daarna alleen als het bestand op de download server nieuwer is dan de lokale versie. 


Voorbeeld: het bestand heet bag.csv en de URL is
https://example.com/files/bag/bag.csv?k=fhadsj54f2s (fictieve URL hier, de key is fhadsj54f2s!).
Dan kun je het script newer-download.sh als volgt gebruiken:


./newer-download.sh https://example.com/files/bag/bag.csv?k=fhadsj54f2s bag.csv


De eerste keer zal bag.csv gedownload worden. Daarna alleen als dit bestand op de server nieuwer is. U dient wel in de map (directory) te staan waar het bestand bag.csv ook staat! Het script vergelijkt de datum+tijd van dit lokale bestand met die op de server. Die lokale datum+tijd moet u ook niet wijzigen door bijvoorbeeld altijd met cp -p te copiëren. 


Handig is bijvoorbeeld om dit script in een cron (batch) job te draaien zodat u altijd de nieuwste versie van het bestand heeft!