Показать статистику
0 голосов
от (2.3тыс. баллов)
Как создать файл с указанием даты в тот момент, когда я создал новый файл. Как мне сделать это используя одну команду?
240 просмотров 1 ответов

1 Ответ

0 голосов
от (26.4тыс. баллов)

Примените команду date для перенаправления в файл, и он будет создан:

date > example.txt

Предпочтительный способ - использование >> оператора добавления:

date >> example.txt

Оператор перенаправленияи оператор добавления >> создадут целевой файл, если он не существует. Вам  не надо сначала создавать его, а  уже потом писать.

Если эта проблема связана с созданием файла с указанием даты в тот момент, когда вы создали новый файл

Из-за условий гонки (Взять к примеру,  когда имеется процесс, периодически сканирующий файл с таким именем и ожидающий найти там дату), даже выполняющий

date > example.txt

То это неверно, так как между тем, когда оболочка открывает файл, и тем, когда он date действительно записывает свои данные, окно все еще очень маленькое, что также может быть записано не атомарно.

В таком случае решение состоит в том, чтобы записать в отдельный файл и затем выполнить mv правильное имя файла. Вот пример:

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

Перемещение в той же файловой системе гарантированно является атомарным, поэтому при появлении example.txt ,  оно уже содержит ожидаемое содержимое.

Если вместо этого вопрос заключается только в наборе одной команды, то, конечно, оригинальное решение является правильным и наиболее простым.

...