aboutsummaryrefslogtreecommitdiff
path: root/_tils/2020-08-12-nome-de-arquivo-com-timestamp-simplificado.md
blob: 2e7fc329a5661f01b799b6e64c8c500fc9c572bc (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
45
---

title: Nome de arquivo com timestamp simplificado

date: 2020-08-12

updated_at: 2020-11-04

layout: post

lang: pt

ref: simple-filename-timestamp

eu_categories: shell

---

Quando vou escrever um post no Jekyll ou criar um arquivo de log com a data no
nome, eu normalmente engasgo para achar um jeito direto de fazer isso. Há uma
solução simples: `date -I`.

```shell
./meu-programa.sh > meu-programa.$(date -I).log
cp template-de-post.md _posts/$(date -I)-slug-do-post.md
```

Usar essa ferramenta padrão do GNU/Linux permite que você simplesmente escreva
`touch $(date -I).md` para criar um arquivo `2020-08-12.md`.

Eu sempre tinha que parar para reler o `man date` ou buscar na internet de novo
e de novo como fazer isso, e depois de sempre chegar no mesmo resultado ficou
claro para mim que `date -I` quanto `date -Is` (`s` de segundos) são as
respostas que eu estou procurando 95% do tempo:

```shell
# dentro do meu-programa.sh
echo "Programa começou em $(date -Is)"
# saída é:
# Programa começou em 2020-08-12T09:15:16-03:00
```

Ambos os formatos de data são hierárquicos, com intervalos de tempo maior à
esquerda. Isso significa que você pode facilmente ordená-los (e até usar TAB
para completar) sem esforço ou ferramenta extra.