Điều này không hoạt động vì lệnh date
trả về một chuỗi có khoảng trắng trong đó.
$ date
Wed Oct 16 19:20:51 EDT 2013
Nếu bạn thực sự muốn tên tập tin như vậy, bạn sẽ cần phải bọc chuỗi đó trong dấu ngoặc kép.
$ touch "foo.backup.$(date)"
$ ll foo*
-rw-rw-r-- 1 saml saml 0 Oct 16 19:22 foo.backup.Wed Oct 16 19:22:29 EDT 2013
Có lẽ bạn đang nghĩ về một chuỗi khác sẽ được thêm vào sẽ là phỏng đoán của tôi. Tôi thường sử dụng một cái gì đó như thế này:
$ touch "foo.backup.$(date +%F_%R)"
$ ll foo*
-rw-rw-r-- 1 saml saml 0 Oct 16 19:25 foo.backup.2013-10-16_19:25
Xem trang man để biết ngày để biết thêm các mã định dạng xung quanh đầu ra cho ngày & giờ.
Định dạng bổ sung
Nếu bạn muốn kiểm soát hoàn toàn nếu bạn tham khảo trang người đàn ông, bạn có thể làm những việc như thế này:
$ date +"%Y%m%d"
20131016
$ date +"%Y-%m-%d"
2013-10-16
$ date +"%Y%m%d_%H%M%S"
20131016_193655
LƯU Ý: Bạn có thể sử dụng date -I
hoặc date --iso-8601
sẽ tạo ra đầu ra giống hệt nhau date +"%Y-%m-%d
. Công tắc này cũng có khả năng lấy một đối số để chỉ ra các định dạng thời gian khác nhau :
$ date -I=?
date: invalid argument ‘=?’ for ‘--iso-8601’
Valid arguments are:
- ‘hours’
- ‘minutes’
- ‘date’
- ‘seconds’
- ‘ns’
Try 'date --help' for more information.
Ví dụ:
$ date -Ihours
2019-10-25T01+0000
$ date -Iminutes
2019-10-25T01:21+0000
$ date -Iseconds
2019-10-25T01:21:33+0000