在 Linux 中如何创建名称为当前日期和时间的文件

15 linux

我想制作一个名称将是当前日期和时间的文件。我可以使用touch命令创建一个文件。我也可以使用date命令获取当前时间。所以,我想,我需要以某种方式将第二个命令通过管道传递给第一个命令。我怎样才能做到这一点?

Dan*_*eck 23

使用 shell 表达式的返回值作为参数touch

touch $( date '+%Y-%m-%d_%H-%M-%S' )
Run Code Online (Sandbox Code Playgroud)

结果:名为 eg 的文件2012-03-11_14-33-53

此答案假定您正在使用bash(在man页面部分Command Substitution中进行了描述),但其他 shell 的工作方式相同或仅略有不同。

  • @gasan 用`"` 引号将它括起来。你可以想象`date` 的输出替换了命令行的那部分,`touch Sun Mar 11 14:48:31 CET 2012` 将创建文件名`Sun` 、`Mar` 等`touch "Sun Mar 11 14:48:31 CET 2012"` 另一方面工作正常(除了我不确定冒号的工作效果如何)。 (2认同)
  • @gasan 单引号不起作用,因为它们不允许命令替换或任何其他解释。请参阅 Bash 手册中的 [quoting](http://www.gnu.org/software/bash/manual/html_node/Quoting.html#Quoting)。 (2认同)
  • @gasan 不同之处在于不评估单引号的内容。尝试使用 `echo "$HOME"` 和 `echo '$HOME'`。这就是为什么我建议使用`"`。 (2认同)