众所周知,“ unix”在文件中可以包含除“ /”和“ \ 0”以外的任何内容,但是sysadmins的使用偏好通常要小得多,这主要是因为没有人喜欢使用空格作为输入...以及许多东西“:”和“ @”等特殊含义。
最近,我还看到了在文件名中使用时间戳的另一种情况,并且在使用不同的格式进行播放以使其“更好”之后,我发现我会尝试找到“最佳实践”,而没有发现我只想问一下这里,看看人们的想法。
可能的“常见”解决方案(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
优点:
- 没空间了。
- 考虑到TZ。
- 被人类阅读“不错”(仅日期对良好)。
- 可以由$(date --iso = {hours,minutes,seconds})生成
缺点:
- scp / tar / etc。不会喜欢那些':'字符。
- “正常的”人需要花一点时间才能看到“ T”代表的WTF,最后的含义是:)。
- 很多“-”字符。
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
优点:
- 考虑到TZ。
- 可以被“所有人”轻松阅读。
- 可以区分日期/时间和前缀/后缀。
- 以上某些内容可以通过$(date --iso = {hours,seconds})生成
缺点:
- 时间版本中有空格(这意味着所有代码都会讨厌它)。
- scp / tar / etc。不会喜欢那些':'字符。
我喜欢连字符:
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 / etc。变体。
缺点:
- 很多“-”字符。
- 假设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%以上,但不在乎)。
或者,显然,不在上面的列表中。