===== Exemplos do comando date =====
==== Nível Básico ====
* **Exibir a data e hora atuais:**
- date
- Exibe a data e hora atuais no formato padrão do sistema.
* **Exibir apenas a data atual:**
- date +%Y-%m-%d
- Exibe a data atual no formato `YYYY-MM-DD` (ex.: 2024-10-12).
* **Exibir apenas a hora atual:**
- date +%H:%M:%S
- Exibe a hora atual no formato de 24 horas `HH:MM:SS`.
* **Exibir o dia da semana:**
- date +%A
- Exibe o dia da semana (ex.: "Saturday" para sábado).
* **Exibir a data e hora no formato UTC:**
- date -u
- Exibe a data e hora em UTC (Tempo Universal Coordenado).
==== Nível Intermediário ====
* **Exibir a data e hora no formato customizado:**
- date +"Hoje é %d/%m/%Y e são %H:%M"
- Exibe a data e hora no formato personalizado, como "Hoje é 12/10/2024 e são 14:30".
* **Converter um timestamp em data legível:**
- date -d @1634043000
- Converte o timestamp Unix `1634043000` em uma data legível.
* **Exibir a data de um dia específico no futuro:**
- date -d "+7 days"
- Exibe a data de daqui a 7 dias a partir da data atual.
* **Exibir a data de um mês anterior:**
- date -d "last month"
- Exibe a data correspondente ao mês anterior.
* **Salvar a data atual em uma variável:**
- hoje=$(date +%Y-%m-%d)
- Salva a data atual no formato `YYYY-MM-DD` na variável `hoje`.
==== Nível Avançado ====
* **Alterar a data e hora do sistema:**
- sudo date -s "2024-12-31 23:59:59"
- Define a data e hora do sistema para `31 de dezembro de 2024, 23:59:59`.
* **Exibir a diferença entre duas datas:**
- date -d "2024-12-31" +%s
date -d "2023-01-01" +%s
echo $(( ($(date -d "2024-12-31" +%s) - $(date -d "2023-01-01" +%s)) / 86400 ))
- Calcula a diferença em dias entre duas datas (de 1º de janeiro de 2023 a 31 de dezembro de 2024).
* **Exibir o número da semana atual:**
- date +%V
- Exibe o número da semana no ano atual (ex.: 41).
* **Exibir a data e hora de arquivo específico:**
- date -r arquivo.txt
- Exibe a data e hora de modificação do arquivo `arquivo.txt`.
* **Criar backups com timestamps no nome do arquivo:**
- cp arquivo.txt arquivo_$(date +%Y%m%d_%H%M%S).txt
- Copia o arquivo `arquivo.txt` adicionando um timestamp no nome do backup (ex.: `arquivo_20241012_143000.txt`).
==== Nível Especializado ====
* **Sincronizar a data e hora com um servidor NTP:**
- sudo ntpdate ntp.servidor.com
- Sincroniza a data e hora do sistema com um servidor NTP (Network Time Protocol).
* **Usar `date` para gerar um arquivo de log com timestamps contínuos:**
- while true; do echo "Log $(date +%Y-%m-%d\ %H:%M:%S)" >> log.txt; sleep 10; done
- Cria um loop que adiciona uma entrada de log com timestamp a cada 10 segundos no arquivo `log.txt`.
* **Adicionar um timestamp a cada linha de um comando em execução:**
- ping google.com | while read line; do echo "$(date +%H:%M:%S) $line"; done
- Executa o comando `ping` e adiciona um timestamp a cada linha da saída.
* **Exibir a data em milissegundos:**
- date +%s%3N
- Exibe o tempo Unix (epoch) com precisão de milissegundos.
* **Agendar a execução de um comando em uma data específica:**
- echo "comando_a_ser_executado" | at 12:30 PM 2024-12-31
- Usa o comando `at` para agendar a execução de um comando no dia `31 de dezembro de 2024`, às 12:30 PM.
* **Calcular o tempo restante até uma data futura:**
- data_futura=$(date -d "2024-12-31 23:59:59" +%s)
data_atual=$(date +%s)
echo "$(( ($data_futura - $data_atual) / 86400 )) dias restantes"
- Calcula o número de dias restantes até o `31 de dezembro de 2024`.
* **Gerar timestamps contínuos para uso em scripts de automação:**
- for i in {1..5}; do echo "Processo $i iniciado em $(date +%Y-%m-%d\ %H:%M:%S)"; sleep 1; done
- Gera timestamps contínuos com uma pausa de 1 segundo entre cada execução, ideal para monitoramento de processos.