创建目录时,mkdir -m <mode> <dir>提供使用给定模式/权限集(原子地)创建一个或多个目录。
在命令行上是否有创建文件的等价物?
类似于:
open("file", O_WRONLY | O_APPEND | O_CREAT, 0777);
Run Code Online (Sandbox Code Playgroud)
使用touch后面是chmod我唯一的选择吗?
编辑:在尝试了 teppic 的使用建议后install,我运行了它strace以查看它与原子的接近程度。答案是,不是很:
$ strace install -m 777 /dev/null newfile
...
open("newfile", O_WRONLY|O_CREAT|O_EXCL, 0666) = 4
fstat(4, {st_mode=S_IFREG|0666, st_size=0, ...}) = 0
...
fchmod(4, 0600) = 0
close(4) = 0
...
chmod("newfile", 0777) = 0
...
Run Code Online (Sandbox Code Playgroud)
尽管如此,这是一个单一的 shell 命令,我以前不知道。