来自Python
>>> import os
>>> s = os.stat( '/etc/termcap')
>>> print( oct(s.st_mode) )
**0o100444**当我检查Bash时
$ stat -f "%p %N" /etc/termcap
**120755** /etc/termcap为什么这会返回不同的结果?
发布于 2016-04-07 21:53:37
这是因为您的/etc/termcap是一个符号链接。让我向你们展示这一点:
Bash
$ touch bar
$ ln -s bar foo
$ stat -f "%p %N" foo
120755 foo
$ stat -f "%p %N" bar
100644 barPython
>>> import os
>>> oct(os.stat('foo').st_mode)
'0100644'
>>> oct(os.stat('bar').st_mode)
'0100644'
>>> oct(os.lstat('foo').st_mode)
'0120755'
>>> oct(os.lstat('bar').st_mode)
'0100644'结论:使用os.lstat而不是os.stat
https://stackoverflow.com/questions/36486194
复制相似问题