I use GPSDrive, Mysql, a Lawrence iFinder Go, and a cable...
The shell script has a bunch of lines like this
----
gpsbabel -i gpx -f 853345.gpx -o gpsdrive -F - |awk '{print "insert into waypoints \
(name,lat,lon,type) values (\"ST-" $1 "\",\"" $2 "\",\"" $3 "\",\"" $4 "\");" }' >>wp.sql
gpsbabel -i gpx -f 853345.gpx -o html -F ~/Desktop/Geo-Sea-Tac.html
gpsbabel -i gpx -f 853345.gpx -o nmea -F - >>nmea.out
----
and then, it sends the wp.sql to the mysql server, the nmea.out to the term program, and that's it!
GPSDrive shows the caches nearby, (the cache is prefixed with a W, H, ST etc. to show which html file to look in.)
At last count I am uploading about 600 waypoints to my GPSr so that I can detach and walk to the cache.
Correction, 700.