Câu trả lời:
Đó là một cách để thể hiện thời gian được định dạng bằng printf
.
Định dạng là:
%(FORMAT)T
Trường hợp FORMAT
được xác định bởi strftime(3)
.
Vì vậy, để có được thời gian kỷ nguyên (Thời gian tính bằng giây kể từ 1970-01-01 00:00:00 UTC), chúng ta cần strftime(3)
định dạng %s
:
printf "%(%s)T\n"
Lưu ý rằng bạn cũng cần \n
ở cuối để thêm một dòng mới vì printf
(không giống như echo
) không thêm nó theo mặc định.
Thí dụ:
$ printf "%(%s)T\n"
1454300377
$ printf "%(%Y-%m-%d)T\n"
2016-02-01
$ printf "%(%Y-%m-%d %H:%M:%S)T\n"
2016-02-01 10:20:27
Để hoàn thiện, bạn cũng có thể sử dụng date
lệnh strftime(3)
theo cách được định dạng tương tự để có thời gian:
$ date '+%s'
1454300542
$ date '+%Y-%m-%d' ## Short form: date -I
2016-02-01
$ date '+%Y-%m-%d %H:%M:%S'
2016-02-01 10:22:47
LƯU Ý : Hành vi này là cụ thể cho bash
's và ksh
' s built-in chức năng printf
, và không làm việc với /usr/bin/printf
, csh
và zsh
built-in.
printf(1)
trang người đàn ông.
printf
là một nội dung dựng sẵn ở đây (mặc dù bên ngoài có hành vi tương tự) .. kiểm tra help printf
..
printf
một nội dung của bạn ?/usr/bin/printf
trên Ubuntu 14.04 có lỗi :printf: %(: invalid conversion specification
. Nếu bạn đang sử dụngbash
. Hãy thửman bash
tài liệu dựng sẵn.