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不会创建文件,但是一旦您知道您对该目录具有独占访问权限,那么您就可以在其中创建所需的文件.

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

相关文章

用的openwrt路由器,家里宽带申请了动态公网ip,为了方便把2...
#!/bin/bashcommand1&command2&wait从Shell脚本并行...
1.先查出MAMP下面集成的PHP版本cd/Applications/MAMP/bin/ph...
1、先输入locale-a,查看一下现在已安装的语言2、若不存在如...
BashPerlTclsyntaxdiff1.进制数表示Languagebinaryoctalhexa...
正常安装了k8s后,使用kubect工具后接的命令不能直接tab补全...