Ao criar diretórios, mkdir -m <mode> <dir>
prevê a criação de um ou mais diretórios com o conjunto de modo / permissões fornecido (atomicamente).
Existe um equivalente para criar arquivos na linha de comando?
Algo semelhante a:
open("file", O_WRONLY | O_APPEND | O_CREAT, 0777);
Está usando touch
seguido por uma chmod
minha única opção aqui?
Edit: Depois de experimentar a sugestão de teppic para uso install
, eu corri-lo através strace
de ver o quão perto atômica que era. A resposta é não muito:
$ 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
...
Ainda assim, é um único comando shell e um que eu não conhecia antes.
install