Khi tạo thư mục, mkdir -m <mode> <dir>
cung cấp để tạo một hoặc nhiều thư mục với chế độ / quyền đã cho (nguyên tử).
Có tương đương để tạo tập tin, trên dòng lệnh?
Một cái gì đó giống như:
open("file", O_WRONLY | O_APPEND | O_CREAT, 0777);
Được sử dụng touch
theo sau bởi một chmod
lựa chọn duy nhất của tôi ở đây?
Chỉnh sửa: Sau khi thử sử dụng đề xuất của teppic install
, tôi đã chạy qua strace
để xem nó gần với nguyên tử như thế nào. Câu trả lời là, không lắm:
$ 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
...
Tuy nhiên, đó là một lệnh shell duy nhất và tôi chưa biết trước đây.
install