Ответы:
Ну вот:
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