<web>EuAndreh</web>HEA do EuAndrehhttps://euandre.org/feed.tils.pt.atom2023-09-19T11:20:48-03:00EuAndreheu@euandre.orgNome de arquivo com timestamp simplificado2020-08-12T00:00:00-03:002020-11-04T00:00:00-03:00https://euandre.org/til/2020/08/12/nome-de-arquivo-com-timestamp-simplificado.html
<p>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: <code class="language-plaintext highlighter-rouge">date -I</code>.</p>
<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><table class="rouge-table"><tbody><tr><td class="rouge-gutter gl"><pre class="lineno">1
2
</pre></td><td class="rouge-code"><pre>./meu-programa.sh <span class="o">></span> meu-programa.<span class="si">$(</span><span class="nb">date</span> <span class="nt">-I</span><span class="si">)</span>.log
<span class="nb">cp </span>template-de-post.md _posts/<span class="si">$(</span><span class="nb">date</span> <span class="nt">-I</span><span class="si">)</span><span class="nt">-slug-do-post</span>.md
</pre></td></tr></tbody></table></code></pre></div></div>
<p>Usar essa ferramenta padrão do GNU/Linux permite que você simplesmente escreva
<code class="language-plaintext highlighter-rouge">touch $(date -I).md</code> para criar um arquivo <code class="language-plaintext highlighter-rouge">2020-08-12.md</code>.</p>
<p>Eu sempre tinha que parar para reler o <code class="language-plaintext highlighter-rouge">man date</code> 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 <code class="language-plaintext highlighter-rouge">date -I</code> quanto <code class="language-plaintext highlighter-rouge">date -Is</code> (<code class="language-plaintext highlighter-rouge">s</code> de segundos) são as
respostas que eu estou procurando 95% do tempo:</p>
<div class="language-shell highlighter-rouge"><div class="highlight"><pre class="highlight"><code><table class="rouge-table"><tbody><tr><td class="rouge-gutter gl"><pre class="lineno">1
2
3
4
</pre></td><td class="rouge-code"><pre><span class="c"># dentro do meu-programa.sh</span>
<span class="nb">echo</span> <span class="s2">"Programa começou em </span><span class="si">$(</span><span class="nb">date</span> <span class="nt">-Is</span><span class="si">)</span><span class="s2">"</span>
<span class="c"># saída é:</span>
<span class="c"># Programa começou em 2020-08-12T09:15:16-03:00</span>
</pre></td></tr></tbody></table></code></pre></div></div>
<p>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.</p>
EuAndreheu@euandre.orgQuando 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.