加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-15 18:38:38 所属栏目:安全 来源:网络整理
导读:我想要一个 Bash单行程序,如果它不存在则以原子方式创建一个文件.这意味着“如果文件不存在,则创建它”,但确保没有其他人设法在执行if和创建文件之间的小空间中创建文件. Stealing an answer从各种评论和链接到[SO].似乎有一个 POSIX compliant method不涉及
我想要一个 Bash单行程序,如果它不存在则以原子方式创建一个文件.这意味着“如果文件不存在,则创建它”,但确保没有其他人设法在执行if和创建文件之间的小空间中创建文件.
Stealing an answer从各种评论和链接到[SO].似乎有一个 POSIX compliant method不涉及mkdir,正如我在下面的原始答案中提到的那样
set -o noclobber # or set -C
{ > file ; } &> /dev/null

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

原始答案

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

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读