linux ntfs隐藏文件,如何在linux上使用python检查NTFS分区上的隐藏文件和文件夹?...

该博客介绍了如何在Linux系统中利用ntfs-3g和pyxattr库来读取NTFS分区文件的扩展属性。通过解码system.ntfs_attrib扩展属性,可以获取文件的如只读、隐藏、系统等标志,并以此筛选文件。提供的Python代码示例展示了如何实现这一功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

您将需要读取文件扩展属性(请参见attr(5)),可以使用pyxattr来完成此操作。NTFS属性存储在system.ntfs_attrib扩展属性中,作为一组标记,其值记录在ntfs-3g documentation中。

下面是读取和解码NTFS文件系统属性并使用它们筛选文件的示例代码:import os, struct, xattr

# values from http://www.tuxera.com/community/ntfs-3g-advanced/extended-attributes/

attributes = ['readonly', 'hidden', 'system', 'unknown',

'unknown', 'archive', 'unknown', 'unknown',

'temp', 'unknown', 'unknown', '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()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值