Ответы:
Ну вот:
date +%Y%m%d%H%M%S
Как man date
сказано в верхней части, вы можете использовать такую date
команду:
date [OPTION]... [+FORMAT]
То есть вы можете указать ему параметр формата, начиная с +
. Вы, наверное, догадались, что означают символы форматирования, которые я использовал:
%Y
на год%m
на месяц%d
на деньВы можете найти этот и другие символы форматирования в man date
.
Если вы используете Bash, вы также можете использовать одну из следующих команд:
printf '%(%Y%m%d%H%M%S)T' # prints the current time
printf '%(%Y%m%d%H%M%S)T' -1 # same as above
printf '%(%Y%m%d%H%M%S)T' -2 # prints the time the shell was invoked
Вы можете использовать опцию -v varname
для сохранения результата $varname
вместо его вывода на стандартный вывод:
printf -v varname '%(%Y%m%d%H%M%S)T'
Хотя команда date всегда будет выполняться в подоболочке (т. Е. В отдельном процессе), printf является встроенной командой и, следовательно, будет быстрее.
%
параметры вы можете передать, похоже, это использует date
команду. Итак, man date
мы предоставим вам доступные варианты.
Интересный / забавный способ сделать это с помощью расширения параметров (требуется bash 4.4
или новее):
${parameter@operator} - P operator
Расширение - это строка, которая является результатом расширения значения параметра, как если бы это была строка приглашения.
$ show_time() { local format='\D{%Y%m%d%H%M%S}'; echo "${format@P}"; }
$ show_time
20180724003251
"`date +%Y-%m-%d %H:%M:%S`"
дает мнеdate: illegal time format