Odpowiedzi:
Proszę bardzo:
date +%Y%m%d%H%M%S
Jak man datemówi u góry, możesz użyć następującego datepolecenia:
date [OPTION]... [+FORMAT]
Oznacza to, że możesz nadać mu parametr formatu, zaczynając od +. Prawdopodobnie możesz odgadnąć znaczenie symboli formatowania, których użyłem:
%Y jest na rok%m jest na miesiąc%d jest na dzieńMożesz znaleźć to i inne symbole formatowania w man date.
Jeśli używasz Bash, możesz również użyć jednego z następujących poleceń:
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
Możesz użyć opcji, -v varnameaby zapisać wynik $varnamezamiast drukowania go na stdout:
printf -v varname '%(%Y%m%d%H%M%S)T'
Chociaż polecenie date zawsze będzie wykonywane w podpowłoce (tj. W oddzielnym procesie), printf jest poleceniem wbudowanym i dlatego będzie szybsze.
%opcji, które możesz przekazać, wydaje się, że używa tego datepolecenia. Więc man dateda ci dostępne opcje.
Ciekawy / zabawny sposób na zrobienie tego za pomocą rozszerzenia parametrów (wymaga bash 4.4lub nowszy):
${parameter@operator} - P operatorInterpretacja to łańcuch będący wynikiem rozszerzenia wartości parametru tak, jakby był to wiersz zachęty.
$ show_time() { local format='\D{%Y%m%d%H%M%S}'; echo "${format@P}"; }
$ show_time
20180724003251
"`date +%Y-%m-%d %H:%M:%S`"daje midate: illegal time format