Як ми всі знаємо, "Unix" може мати що-небудь у файлі, окрім '/' та '\ 0', проте системні адміністратори, як правило, мають набагато менші уподобання, головним чином через те, що нічого не подобається пробілам як вхідним даних ... і купі речей особливе значення для ':' та '@' серед інших.
Нещодавно я бачив ще один випадок, коли в назві файлу була використана мітка часу, і трохи погравши в різні формати, щоб зробити її "кращою", я зрозумів, що спробую знайти "найкращу практику", не бачачи жодної, яку я зрозумів Я просто запитав би тут і побачив, що думають люди.
Можливі "загальні" рішення (p = префікс і s = суфікс):
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
плюси:
- Це "звичайно", тому "досить хороший" може бути кращим, ніж "найкращий".
- Ніяких дивних персонажів.
- Легко відрізнити "крапку дати / часу" від усього іншого.
мінуси:
- Версію лише з датами читати непросто, і враховуючи час, у мене очі кровоточать, а секунди також просто "хаха".
- Припускає TZ.
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
плюси:
- Пробілів немає.
- Враховує ТЗ.
- Чи не "погано" для читання людьми (тільки дата - це проти).
- Може бути створено $ (дата --iso = {годин, хвилин, секунд})
мінуси:
- scp / tar / тощо. не сподобаються ці символи ':'.
- Потрібно трохи "нормальним" людям побачити WTF, що "T" - це, і в чому справа в кінці :).
- Багато символів "-".
формат 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
плюси:
- Враховує ТЗ.
- Легко можна прочитати «всіма людьми».
- Можна відрізнити дату / час від префікса / суфікса.
- Деякі з перерахованих вище можна створити за допомогою $ (дата --iso = {годин, секунд})
мінуси:
- Має пробіли у часових версіях (це означає, що весь код буде ненавидіти його).
- scp / tar / тощо. не сподобаються ці символи ':'.
Я люблю дефіси:
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
плюси:
- в основному трохи приємніший syslog / тощо. варіант.
мінуси:
- Багато символів "-".
- Припускає TZ.
Я люблю дефіси з розширеннями:
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
плюси:
- в основному трохи приємніший варіант "Я люблю дефіси".
- Ніяких дивних персонажів.
- Можна відрізнити дату / час від префікса / суфікса.
мінуси:
- Використання "." тут дещо нетрадиційно.
- Припускає TZ.
... тож кожен хоче надати перевагу та причину, або більше, ніж один (напр., не хвилюється TZ, якщо це 95 +%, щоб залишатись локальним автоматом, але важливо багато, якщо його немає).
Або, очевидно, щось не вказано у переліченому списку.