我正在运行CentOS Linux。
我使用专有文件系统创建了以下目录:
$ mkdir fooDir
首先,我使用 "ls -ldi" 命令来检查 inode 值:
$ ls -ldi
total 4
9223372036854783200 drwxrwxrwx 2 root root 4096 Jan 6 20:58 fooDir
然后,我确认“stat”报告的是相同的inode:
$ stat /fooDir
File: `/fooDir'
Size: 4096 Blocks: 8 IO Block: 4096 directory
Device: 14h/20d Inode: 9223372036854783200 Links: 2
Access: (0777/drwxrwxrwx) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2016-01-06 20:58:13.000000000 +0000
Modify: 2016-01-06 20:58:13.000000000 +0000
Change: 2016-01-06 20:58:23.000000000 +0000
但是当我切换到 Python 的交互式提示符并对目录运行 om.stat 命令时:
$ python
Python 2.6.6 (r266:84292, Jun 18 2012, 14:18:47)
[GCC 4.4.6 20110731 (Red Hat 4.4.6-3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.stat("/fooDir")
posix.stat_result(st_mode=16895, st_ino=-9223372036854768416, st_dev=20L, st_nlink=2, st_uid=0, st_gid=0, st_size=4096, st_atime=1452113893, st_mtime=1452113893, st_ctime=1452113903)
>>>
Python的os.stat返回的inode值与stat命令报告的值不匹配。
文件系统已将inode值9223372036854783200分配给目录“fooDir”,但Python的os.stat返回“-9223372036854768416”。
我可以理解它将其视为有符号值并因此带有负号,但是我困惑于为什么它是完全不同的值。
这里发生了什么?为什么Python的os stat返回错误的inode值?(或者根据“stat”命令是错误的)