web-dev-qa-db-ja.com

日付を含む新しいファイルを作成する方法は?

新しいファイルを作成して、その中に日付を入れることができます。

touch example.txt
date >> example.txt

ただし、新しいファイルを作成した時点で、日付を含むファイルを作成する必要があります。 1つのコマンドだけでそれを行うにはどうすればよいですか?

2
Nonkocka

Dateコマンドを使用してファイルにリダイレクトすると、ファイルが作成されます。

date > example.txt

>> append演算子を使用することをお勧めします。

date >> example.txt

リダイレクト演算子(>)と追加演算子(>>)は、ターゲットファイルが存在しない場合に作成します。最初に作成して後で書き込む必要はありません。

15
George Udosen

問題がある場合、それは注目に値する

新しいファイルを作成した時点で、日付を含むファイルを作成する必要があります

競合状態(例:その名前のファイルを定期的にスキャンするプロセスがあり、その中の日付を見つけることを期待している)、

date > example.txt

シェルがファイルを開いてからdateが実際にその内容を書き込むとき(非原子的に書き込まれることもあります)には非常に小さなウィンドウがあるため、これは正しくありません。

その場合、解決策は別のファイルに書き込むことですそして正しいファイル名に対してmvを実行します:

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

同じファイルシステム上での移動はアトミックであることが保証されているため、example.txtが表示されるときは、期待されるコンテンツが既に含まれています。


代わりに、質問が単一のコマンドを入力することだけである場合、元の解決策はもちろん正しく最も簡単な解決策です。

0
Matteo Italia