Vamos dividir isso em suas partes constituintes:
A date
parte
-
date -u
: conforme explicado emman date
, a sinalização-u
faz com que imprima o Horário universal coordenado -
+%V
: o comando data aceita um argumento de formato que é fornecido após um+
. Por exemplo:$ date +%m/%d/%y 05/04/14
Veja
man date
para obter uma lista de todos os formatos que ele pode produzir. O%V
significa:% V número da semana ISO, com segunda-feira como primeiro dia da semana (01.53)
Então, essa semana ele retornará:
$ date +%V 18
E na próxima semana , ele retornará
19
. -
$(uname)
: isso simplesmente imprimirá o resultado do comandouname
, que deve serLinux
em um sistema Linux.
Então, colocando tudo isso junto, o comando date
imprimirá WeekNumberLinux
:
$ date -u +%V$(uname)
18Linux
A sha256sum
parte
sha256sum
simplesmente recebe uma string de entrada e aplica uma função hash a ela. Isso produz uma longa string que é exclusiva para a entrada dada:
$ date -u +%V$(uname) | sha256sum
9a93b71d5b2841e649195bc81f8e38600860a040bc368cdbd0cde346b73248a1 -
A sed
parte
O comando sed
usa o operador susbtitution ( s/pattern/replacment/
), que substituirá pattern
por replacement
. Nesse caso, o padrão é \W
, que significa "Todos os caracteres não-palavra", significando qualquer coisa que não seja [A-Za-z0-9_]
, não uma letra, não um número e não um sublinhado. Isso é usado para remover o espaço à direita e -
da saída de sha256sum
.
Assim, o comando é uma maneira simples de garantir que você não é um robô. Como o date
está imprimindo a semana atual, sua saída será sempre a mesma até a próxima semana, quando será alterada.