Jeśli chcesz użyć bieżącej daty i godziny jako nazwy pliku, możesz użyć date
i podstawić polecenia .
$ md5sum /etc/mtab > "$(date +"%Y_%m_%d_%I_%M_%p").log"
Powoduje to, że plik 2016_04_25_10_30_AM.log
(chociaż z bieżącą datą) jest tworzony z hashem md5 /etc/mtab
jako jego zawartością.
Pamiętaj, że nazwy plików zawierające 12-godzinne znaczniki czasu w formacie prawdopodobnie nie będą sortowane według nazw w sposób, w jaki chcesz, aby były sortowane. Możesz uniknąć tego problemu, używając zamiast tego 24-godzinnych znaczników czasu.
Jeśli nie masz wymogu używania tego określonego formatu daty, możesz rozważyć użycie formatu daty i godziny zgodnego z ISO 8601. Niektóre przykłady generowania prawidłowych reprezentacji daty i godziny ISO 8601 obejmują:
$ date +"%FT%T"
2016-04-25T10:30:00
$ date +"%FT%H%M%S"
2016-04-25T103000
$ date +"%FT%H%M"
2016-04-25T1030
$ date +"%Y%m%dT%H%M"
20160425T1030
Jeśli chcesz mieć „bezpieczniejsze” nazwy plików (np. Dla kompatybilności z Windows), możesz pominąć dwukropki z określonego przedziału czasu.
Należy pamiętać, że wszystkie powyższe przykłady zakładają lokalny czas systemowy. Jeśli potrzebujesz reprezentacji czasu spójnej dla różnych stref czasowych, powinieneś określić przesunięcie strefy czasowej lub UTC. Można uzyskać przesunięcie strefy czasowej zgodne z normą ISO 8601, używając „% z” w części formatu date
połączenia w następujący sposób:
$ date +"%FT%H%M%z"
2016-04-25T1030-0400
Możesz uzyskać czas UTC w swoim date
wywołaniu, określając -u
flagę i dodając „Z” na końcu ciągu datetime, aby wskazać, że czas jest UTC w następujący sposób:
$ date -u +"%FT%H%MZ"
2016-04-25T1430Z