【问题标题】:Create file name with date format dd/mm/yyyy in shell [duplicate]在shell中创建日期格式为dd/mm/yyyy的文件名[重复]
【发布时间】:2017-09-19 14:58:47
【问题描述】:

最近,我遇到了使用 bash shell 创建具有日期格式的文件名,如下例所示

touch 22/04/2017

它会抛出错误,这意味着您无法使用这种格式创建文件名。

touch: 22/04/2014: No such file or directory

有人知道吗?

【问题讨论】:

  • 1) 请在您阅读的地方添加一个链接,该链接可以使用包含/ 字符的名称保存文件。 2) 请显示您发出命令touch 22/04/2017 的目录的内容(提示:不会有任何此类文件...,因为这里的2204 被解释为当前的子目录目录)。 3) 请详细说明为什么您想要一个日期格式为“dd/mm/yyyy”的文件,而不是说“dd-mm-yyyy”或“dd_mm_yyyy”
  • 虽然这不是一个直接的答案,但我强烈考虑改用 YYYY-MM-DD 格式。它生成对文件名有效的字符序列,易于阅读,并且排序良好。

标签: bash


【解决方案1】:

您不能将/ 用于文件名。它被解释为文件夹分隔符。

使用touch 22/04/2017 表示您要在子树22/04 中创建文件2017

您可以使用其他分隔符,例如_-

【讨论】:

  • 谢谢,我知道我做不到,只是在寻找技术解释。
【解决方案2】:

警告:这是一种只是为了做而做的方法,实际上不推荐也不使用。首先是不允许使用此类字符的原因。

如果你需要这样做,你可以使用this 字符,它看起来与/ 完全一样,但不是。 一般来说,正如 Guillaume Jacquenot 所说,这样的文件名是不允许的。

【讨论】:

  • 虽然这在技术上可能没问题,但对于查看屏幕上显示的路径的人来说会非常混乱。我会尽量避免这种情况。
  • 当然,完全不推荐,但如果你愿意,它就在那里。这就像 java 使用非英语变量名的能力一样。不建议这样做,如果你不小心这样做很难找到错误,但它就在那里。
  • 还有/
  • 我的问题是,有人会如何使用这些文件名?想象一下想要find 名称中包含任何这些字符的东西。疼痛。
  • @Dinos_12345 我理解,但是由于这些论坛的阅读者对问题的理解各不相同,所以当提案虽然技术上正确但可能有一些问题时,添加一点警告总是有用的一些读者不会立即发现的不愉快方面。
猜你喜欢
  • 1970-01-01
  • 2013-03-18
  • 2012-05-05
  • 1970-01-01
  • 1970-01-01
  • 2016-01-02
  • 1970-01-01
  • 2018-04-13
  • 1970-01-01
相关资源
最近更新 更多