Bash one-liner如果不存在则以原子方式创建文件

前端之家收集整理的这篇文章主要介绍了Bash one-liner如果不存在则以原子方式创建文件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想要一个 Bash单行程序,如果它不存在则以原子方式创建一个文件.这意味着“如果文件不存在,则创建它”,但确保没有其他人设法在执行if和创建文件之间的小空间中创建文件.
Stealing an answer从各种评论链接到[SO].似乎有一个 POSIX compliant method不涉及mkdir,正如我在下面的原始答案中提到的那样
set -o noclobber # or set -C
{ > file ; } &> /dev/null

重定向文件返回0或失败,如果文件已存在则返回非零.

原始答案

您将不得不使用mkdir – 这是原子的,要么创建目录,要么可以继续,或者不创建,因此您采取适当的措施.

当然,mkdir不会创建文件,但是一旦您知道您对该目录具有独占访问权限,那么您就可以在其中创建所需的文件.

至于一个班轮 – 我会把它留给你.就个人而言,我会写几行,因为它会更易于维护.

猜你在找的Bash相关文章