如何创建带有日期的新文件?

如何创建带有日期的新文件?

我可以创建一个新文件并在其中输入日期。

touch example.txt
date >> example.txt

但是我必须在创建新文件时在文件中加上日期。如何只用一个命令就能做到这一点?

答案1

只需使用 date 命令重定向到文件即可创建:

date > example.txt

首选方法是使用>>附加运算符:

date >> example.txt

如果目标文件不存在,重定向运算符 ( >) 和追加运算符 ( >>) 都会创建目标文件。您无需先创建它,然后再写入它。

答案2

值得注意的是,如果问题

我必须在创建新文件时在文件中标明日期

是由于竞争条件(例如,有一个进程定期扫描具有该名称的文件,并期望在其中找到日期),即使这样做

date > example.txt

是不正确的,因为在 shell 打开文件和date实际写入内容(也可能以非原子方式写入)之间仍然有一个非常小的窗口。

在这种情况下,解决方案是写入单独的文件进而执行mv正确的文件名:

date > example.txt.tmp
mv example.txt.tmp example.txt

同一文件系统上的移动保证是原子的,因此当example.txt出现时,它已经包含了预期的内容。


如果问题只是输入一个命令,那么原始解决方案当然是正确且最直接的。

相关内容