Я могу создать новый файл и поместить дату в нее.
touch example.txt
date >> example.txt
Но я должен создать файл с датой в нем момент, я создал новый файл. Как я делаю это только с одной командой?
Просто используйте команду даты для перенаправления в файл, и это будет создано:
date > example.txt
Предпочтенный путь был бы с помощью >>
добавьте оператор:
date >> example.txt
Оба оператор перенаправления (>
) и добавлять оператор (>>
) создаст конечный файл, если он не будет существовать. Вы никогда не должны создавать его сначала и писать в него позже.
Стоит отметить что, если проблема с
Я должен создать файл с датой в нем момент, я создал новый файл
происходит из-за условий состязания (например, существует процесс, периодически сканируя для файла с тем именем и ожидает находить дату там), даже делая
date > example.txt
не корректно, поскольку существует все еще очень маленькое окно между тем, когда оболочка открывает файл и когда date
на самом деле пишет его материал (который может также быть записан неатомарно также).
В этом случае решение состоит в том, чтобы записать в отдельный файл и затем выполнить a mv
к корректному имени файла:
date > example.txt.tmp
mv example.txt.tmp example.txt
Перемещение в той же файловой системе, как гарантируют, будет атомарным, итак, когда example.txt
появляется, это уже содержит ожидаемое содержание.
Если вместо этого вопрос примерно вводит единственную команду, исходным решением является, конечно, корректное и большая часть простого.