aboutsummaryrefslogtreecommitdiff
path: root/_tils/2020-08-12-simple-filename-timestamp.md
blob: 7495fc94d028facb86f648d00e2a67569173fcd6 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
---

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.