Estou tentando executar um comando e gostaria de colocar a data e a hora no nome do arquivo de saída.
Aqui está um exemplo de comando que eu gostaria de executar.
md5sum /etc/mtab > 2016_4_25_10_30_AM.log
O formato da data e hora pode ser sensato com sublinhados. Até o UTC, se o AM e o PM não puderem ser usados.
Respostas:
Se você quiser usar a data e hora atuais como um nome de arquivo, poderá usar
date
e comandar a substituição .Isso resulta no arquivo
2016_04_25_10_30_AM.log
(embora com a data e hora atual) sendo criado com o hash md5/etc/mtab
como seu conteúdo.Observe que os nomes de arquivos que contêm carimbos de data e hora no formato de 12 horas provavelmente não serão classificados por nome da maneira que você deseja que eles sejam classificados. Você pode evitar esse problema usando carimbos de data / hora no formato de 24 horas.
Se você não precisa usar esse formato de data específico, considere usar um formato de data e hora compatível com ISO 8601. Alguns exemplos de como gerar representações válidas de data e hora ISO 8601 incluem:
Se você quiser nomes de arquivos "mais seguros" (por exemplo, para compatibilidade com o Windows), poderá omitir os dois pontos da parte da hora.
Lembre-se de que os exemplos acima assumem a hora local do sistema. Se você precisar de uma representação de horário consistente entre fusos horários, especifique um deslocamento de fuso horário ou UTC. Você pode obter um deslocamento de fuso horário compatível com ISO 8601 usando "% z" na parte de formato da sua
date
chamada, como segue:Você pode obter a hora UTC em sua
date
chamada especificando o-u
sinalizador e adicionando "Z" ao final da cadeia de data e hora para indicar que a hora é UTC assim:fonte
$(date +%FT%T)
que dará2016-04-25T10:30:00
.