微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

原文地址:https://www.jb51.cc/bash/385871.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐