(No tengo suficiente reputación para comentar, así que estoy agregando como respuesta: siéntase libre de agregarlo como comentario junto a su respuesta)
El one-liner de Joe Casadonte es perfecto, excepto si corres conset -e , es decir, si su script está configurado para fallar en caso de error, y si todavía no hay cronjobs. En ese caso, el one-liner NO creará el cronjob, pero NO detendrá el script. El fracaso silencioso puede ser muy engañoso.
La razón es que crontab -lregresa con un 1código de retorno, causando el siguiente comando (elecho ) no se ejecute ... por lo tanto, el cronjob no se crea. Pero como se ejecutan como un subproceso (debido al paréntesis), no detienen el script.
(Curiosamente, si ejecuta el mismo comando nuevamente, funcionará: una vez que haya ejecutado crontab -una vez, crontab -laún no muestra nada, pero ya no devuelve un error (ya no recibe el no crontab for <user>mensaje). Entonces echose ejecuta el siguiente y se crea el crontab)
En cualquier caso, si corre con set -e, la línea debe ser:
(crontab -l 2>/dev/null || true; echo "*/5 * * * * /path/to/job -with args") | crontab -