--- title: Simple filename timestamp date: 2020-08-12 updated_at: layout: post lang: en ref: simple-filename-timestamp eu_categories: shell --- When writing Jekyll posts or creating log files with dates on them, I usually struggle with finding a direct way of accomplishing that. There's a simple solution: `date -I`. ```shell ./my-program.sh > my-program.$(date -I).log cp post-template.md _posts/$(date -I)-post-slug.md ``` Using this built-in GNU/Linux tool allows you to `touch $(date -I).md` to readily create a `2020-08-12.md` file. I always had to read `man date` or search the web over and over, and after doing this repeatedly it became clear that both `date -I` and `date -Is` (`s` here stands for seconds) are the thing that I'm looking for 95% of the time: ```shell # inside my-program.sh echo "Program started at $(date -Is)" # output is: # Program started at 2020-08-12T09:04:58-03:00 ``` Both date formats are hierarchical, having the bigger time intervals to the left. This means that you can easily sort them (and even tab-complete them) with no extra effort or tool required.