微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何检查在Linux上使用Python的NTFS分区上隐藏的文件和文件夹?

我在linux机器上使用NTFS分区。 我想使用python来识别linux上NTFS分区上隐藏的文件文件夹。

我怎样才能实现这个使用python 。 任何代码片段/链接将不胜感激。

谢谢。

文件系统testing套件

我可以给Windows用户一个给定的文件可写的步骤

如何在Linux内核中select“sys”和“proc”文件

如何find文件所在的安装点?

inode实际上是否指向磁盘中的地址?

如何在python中find文件系统types

Python – 使脚本来操纵Windows文件path,但在Linux上运行

具有超过百万个小(30 kB)文件的Windows 7目录会显着降低性能

我如何find在所有子目录中具有相同名称的所有文件

依次读取大量的小文件

假设您使用ntfs-3g在Linux上挂载NTFS分区(这是大多数当前Linux发行版的认分区)。

你将需要阅读文件的扩展属性(见attr(5) ),你可以使用pyxattr 。 NTFS属性作为一组标志存储在system.ntfs_attrib扩展属性中,这些值在ntfs-3g文档中有记录 。

这里是一个示例代码来读取和解码NTFS文件系统属性,并使用它们来过滤文件

import os,struct,xattr # values from http://www.tuxera.com/community/ntfs-3g-advanced/extended-attributes/ attributes = ['readonly','hidden','system','unkNown','archive','temp','compressed_dir','offline','not_content_indexed' ] + ['unkNown']*18 def ntfs_attr(path): attr = struct.unpack("i",xattr.get(path,"system.ntfs_attrib"))[0] for shift,attribute in enumerate(attributes): if (attr >> shift) & 1 == 1: yield attribute def main(): import sys if len(sys.argv) != 3: print "Usage: %s path attribute" % sys.argv[0] a = set(attributes) a.remove('unkNown') print "where attribute is one of:",' '.join(a) sys.exit(1) path = sys.argv[1] attribute = sys.argv[2] print "Files with %s attribute in %s:" % (attribute,path) for filename in os.listdir(path): fullname = os.path.join(path,filename) if attribute in ntfs_attr(fullname): print fullname if __name__ == '__main__': main()

linux下似乎没有NTFS属性的Python接口。

NTFS-3G支持NTFS文件属性 ,并将它们公开给Linux工具getfattr和setfattr来读取和设置。

你可以使用python的subprocess getfattr来调用getfattr ,然后解析输出

注意:在我的Ubuntu系统上,我必须安装包attr以获取命令getfattr和setfattr 。

如果你的问题不限于Python,你可以尝试我在shell脚本中实现的例子。

这也是基于NTFS-3G中的system.ntfs_attrib_be属性。 如果您只是要使用它,而不关心它是如何实现的(在Python或shell中),只需下载它,从发行版安装getfattr和setfattr ,然后使用它。

https://gist.github.com/Explorer09/ac4bf6838c271a9968b3

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐