В последней версии Bash (версия ≥ 4.2) вы можете использовать встроенную printf
с модификатором формата %(strftime_format)T
:
$ printf '%(%Y-%m-%d)T\n' -1 # Get YYYY-MM-DD (-1 stands for "current time")
2017-11-10
$ printf '%(%F)T\n' -1 # Synonym of the above
2017-11-10
$ printf -v date '%(%F)T' -1 # Capture as var $date
printf
намного быстрее, чем date
, поскольку он встроен в Bash, а date
- внешняя команда.
Кроме того, printf -v date ...
быстрее, чем date=$(printf ...)
, поскольку не требует разветвления подоболочки.