Python-pathlib的解释.Path.mkdir模式参数



请帮助理解mode=511是如何转换为目录权限的"775〃;在CCD_ 1中。

  • Path.mkdir(mode=511, parents=False, exist_ok=False)

Path.mkdir(模式=511,父项=False,exist_ok=False(在此给定路径上创建一个新目录。如果给定了模式,它将与进程的umask值相结合,以确定文件模式和访问标志。

import pathlib
pathlib.Path("/tmp/hoge").mkdir(mode=511)
$ ls -dal
drwxrwxr-x 2 user user 4096 Dec 30 16:24 /tmp/hoge
$ umask
0002
$ python --version
3.8.10

不确定背后的逻辑是什么。

# For mode=611
d--xr----t 2 user user 4096 Dec 30 16:37 /tmp/hoge
# For mode=411
drw--wx--x 2 user user 4096 Dec 30 16:38
# For mode=311
dr--rw-r-x 2 user user 4096 Dec 30 16:39 /tmp/hoge

根据@Kris。

dec=511
print("The decimal value of", dec, "is:")
print(bin(dec), "in binary.")
print(oct(dec), "in octal.")
print(hex(dec), "in hexadecimal.")
---
The decimal value of 511 is:
0b111111111 in binary.
0o777 in octal. # <--- rwxrwxrwx
0x1ff in hexadecimal.

然后umask002被应用并且变为775/rwxrwxrx

最新更新