- 在 Linux 中,文件或目录的信息存储在其 inode 中。我想知道 Windows 7 中文件或目录信息的数据结构是什么?
- 如何在 Linux 和 Windows 7 中的终端和命令行窗口中获取有关文件或目录的信息?
- 文件或目录的所有者是否始终是其创建者? 它会改变吗?
- Linux 和 Windows 7 中是否有文件创建时间戳?如何获取?
感谢致敬!
答案1
在 Linux 中,文件或目录的信息存储在其 inode 中。我想知道 Windows 7 中文件或目录信息的数据结构是什么?
在这两种操作系统中,这取决于所使用的文件系统。
Windows 使用NTFS默认情况下,“属性列表”在其主文件表中。有一些文档维基百科, 在NTFS.com和Linux NTFS。
较年长的FAT32文件系统(在可移动驱动器中仍然经常使用)更加简单,并且将所有内容保存在一个单一的文件分配表。
如何在 Linux 和 Windows 7 中的终端和命令行窗口中获取有关文件或目录的信息?
在 Linux 中,使用stat
命令。
在 Windows PowerShell 中,使用System.Io.FileInfo
。
在 Windows 中cmd.exe
,您必须使用外部工具或自行处理dir
。
文件或目录的所有者是否始终是其创建者? 所有者可以更改吗?
在 Windows NT 上(包括 XP、2003、Vista、7 及后续版本),新创建的对象1归其创建者所有,除非其他人取得所有权。(管理员可以使用
SeTakeOwnership
特权来执行此操作;非管理员可以在对象的 ACL 允许的情况下取得所有权。)在 Windows NT 的服务器版本中,管理员可以分配对象所有权转移给另一个用户。消费版本(如 Windows XP 或 7)仅允许服用所有权归您自己。
在 Windows 2000 及更早版本中,如果创建者是管理员组的成员,则他创建的对象将归管理员所有,而不是用户所有。这在 Windows XP 中发生了变化,用户将永远拥有他所创建的对象。
FAT 文件系统不支持文件所有权。
所有[需要引用] Unix 系统都使用文件的创建者作为其所有者。
root
可以用来chown
改变所有者。
Linux 和 Windows 7 中是否有文件创建时间戳?如何获取?
在 Windows 中,FAT32 和 NTFS 都存储创建时间戳。
cmd.exe
在dir /tc
将会显示它。FreeBSD 的 UFS2 将创建时间存储为
st_birthtime
。在 Linux 上,某些文件系统(ntfs,可能是 ext4)支持创建时间,但是操作系统本身尚未
stat
. (如果同名系统调用支持,该命令已经显示出生时间。)
笔记:在 Windows 和 FreeBSD 上,创建时间很容易改变。
1这适用于许多其他类型的 Windows NT 对象,不仅限于文件。示例:命名管道、注册表项、进程、服务、桌面、设备、互斥锁...