Если вы хотите использовать текущую дату и время в качестве имени файла, вы можете использовать date
и команду подстановки .
$ md5sum /etc/mtab > "$(date +"%Y_%m_%d_%I_%M_%p").log"
Это приводит к тому, что файл 2016_04_25_10_30_AM.log
(хотя и с текущей датой-временем) создается с хэшем md5 в /etc/mtab
качестве его содержимого.
Обратите внимание, что имена файлов, содержащие метки времени в 12-часовом формате, вероятно, будут сортироваться не так, как вы хотите. Вы можете избежать этой проблемы, используя вместо этого временные метки в 24-часовом формате.
Если у вас нет требования использовать этот конкретный формат даты, вы можете рассмотреть возможность использования формата даты-времени, совместимого с ISO 8601. Некоторые примеры того, как генерировать действительные представления даты и времени ISO 8601, включают:
$ 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
Если вы хотите «более безопасные» имена файлов (например, для совместимости с Windows), вы можете опустить двоеточия из временной части.
Помните, что все приведенные выше примеры предполагают местное системное время. Если вам нужно представление времени, которое согласовано между часовыми поясами, вы должны указать смещение часового пояса или UTC. Вы можете получить смещение часового пояса, совместимое с ISO 8601, используя «% z» в части форматирования вашего date
вызова, например:
$ date +"%FT%H%M%z"
2016-04-25T1030-0400
Вы можете получить время UTC в своем date
вызове, указав -u
флаг и добавив «Z» в конец строки даты и времени, чтобы указать, что время указано в формате UTC, например:
$ date -u +"%FT%H%MZ"
2016-04-25T1430Z