Như chúng ta đều biết "unix" có thể có bất cứ thứ gì trong một tệp ngoại trừ '/' và '\ 0', tuy nhiên, các hệ thống có xu hướng có sở thích nhỏ hơn nhiều, chủ yếu là do không có gì giống như không gian như đầu vào ... và một loạt các thứ có một ý nghĩa đặc biệt cho ':' và '@' trong số những người khác.
Gần đây tôi đã thấy một trường hợp khác trong đó dấu thời gian được sử dụng trong tên tệp và sau khi chơi với các định dạng khác nhau một chút để làm cho nó "tốt hơn", tôi nghĩ rằng tôi đã cố gắng tìm một "cách thực hành tốt nhất", không thấy một cái mà tôi đã tìm ra Tôi chỉ hỏi ở đây và xem mọi người nghĩ gì.
Các giải pháp "phổ biến" có thể (p = tiền tố và s = hậu tố):
định dạng syslog / logrotate / DNS:
p-%Y%m%d-suffix = prefix-20110719-s p-%Y%m%d%H%M-suffix = prefix-201107191732-s p-%Y%m%d%H%M%S-suffix = prefix-20110719173216-s
ưu:
- Đó là "chung", vì vậy "đủ tốt" có thể tốt hơn "tốt nhất".
- Không có nhân vật kỳ lạ.
- Dễ dàng phân biệt "blob ngày / thời gian" với mọi thứ khác.
Nhược điểm:
- Phiên bản chỉ ngày không dễ đọc và bao gồm cả thời gian khiến mắt tôi chảy máu và giây cũng chỉ là "lol".
- Giả sử TZ.
Định dạng ISO-8601-
p-%Y-%m-%d-s = p-2011-07-19-s p-%Y-%m-%dT%H:%M%z-s = p-2011-07-19T17:32-0400-s p-%Y-%m-%dT%H:%M:%S%z-s = p-2011-07-19T17:32:16-0400-s p-%Y-%m-%dT%H:%M:%S%z-s = p-2011-07-19T23:32:16+0200-s
ưu:
- Không có khoảng trắng.
- Đưa TZ vào tài khoản.
- Con người "không xấu" để đọc (chỉ ngày là v. Tốt).
- Có thể được tạo bởi $ (ngày --iso = {giờ, phút, giây})
Nhược điểm:
- scp / tar / vv. sẽ không thích những nhân vật ':' đó.
- Mất một chút để những người "bình thường" thấy WTF rằng 'T' là để làm gì, và điều cuối cùng là gì :).
- Rất nhiều ký tự '-'.
định dạng rfc-3339
p-%Y-%m-%d-s = p-2011-07-19-s p-%Y-%m-%d %H:%M%:z-s = p-2011-07-19 17:32-04:00-s p-%Y-%m-%d %H:%M:%S%:z-s = p-2011-07-19 17:32:16-04:00-s p-%Y-%m-%d %H:%M:%S%:z-s = p-2011-07-19 23:32:16+02:00-s
ưu:
- Đưa TZ vào tài khoản.
- Có thể dễ dàng được đọc bởi "tất cả mọi người".
- Có thể phân biệt ngày / giờ với tiền tố / hậu tố.
- Một số ở trên có thể được tạo bằng $ (ngày --iso = {giờ, giây})
Nhược điểm:
- Có khoảng trắng trong các phiên bản thời gian (có nghĩa là tất cả mã sẽ ghét nó).
- scp / tar / vv. sẽ không thích những nhân vật ':' đó.
Tôi yêu dấu gạch ngang:
p-%Y-%m-%d-s = p-2011-07-19-s p-%Y-%m-%d-%H-%M-s = p-2011-07-19-17-32-s p-%Y-%m-%d-%H-%M-%S-s = p-2011-07-19-23-32-16-s
ưu:
- về cơ bản là một syslog / v.v. biến thể.
Nhược điểm:
- Rất nhiều ký tự '-'.
- Giả sử TZ.
Tôi yêu dấu gạch ngang, với phần mở rộng:
p.%Y-%m-%d.s = p.2011-07-19.s p.%Y-%m-%d.%H-%M.s = p.2011-07-19.17-32.s p.%Y-%m-%d.%H-%M-%S.s = p.2011-07-19.23-32-16.s
ưu:
- về cơ bản là một biến thể "Tôi yêu dấu gạch ngang" đẹp hơn một chút.
- Không có nhân vật kỳ lạ.
- Có thể phân biệt ngày / giờ với tiền tố / hậu tố.
Nhược điểm:
- Sử dụng '.' ở đây có phần phi truyền thống.
- Giả sử TZ.
... Vì vậy, bất cứ ai cũng muốn đưa ra một ưu tiên và một lý do, hoặc nhiều hơn một (Ví dụ: không quan tâm đến TZ nếu đó là 95 +% để giữ máy cục bộ, nhưng quan tâm rất nhiều nếu không).
Hoặc, rõ ràng, một cái gì đó không có trong danh sách trên.