Próbuję wykonać polecenie i chciałbym umieścić datę i godzinę w nazwie pliku wyjściowego.
Oto przykładowe polecenie, które chciałbym uruchomić.
md5sum /etc/mtab > 2016_4_25_10_30_AM.log
Format daty i godziny może być dowolny z podkreślnikami. Nawet UTC, jeśli nie można użyć AM i PM.
text-processing
filenames
date
lepkość
źródło
źródło
Odpowiedzi:
Jeśli chcesz użyć bieżącej daty i godziny jako nazwy pliku, możesz użyć
date
i podstawić polecenia .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ą:
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: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:źródło
$(date +%FT%T)
który da2016-04-25T10:30:00
.