NTFS bölümlerinizi linux'a eklemek için ntfs-3g kullandığınızı varsayarsak (bu varsayılan olarak en güncel linux dağıtımlarında geçerlidir).
Genişletilmiş dosya özelliklerini okumak için (bkz. attr(5)), bunun için pyxattr kullanabilirsiniz. NTFS öznitelikleri ntfs-3g documentation belgesinde belgelenen bir bayrak kümesi olarak system.ntfs_attrib
genişletilmiş özniteliğinde saklanır.
soru Python ile sınırlı değilse
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()
? Gizli olmayan dosyaları tespit edebilir misiniz? – Johnsyweb
@Johnsyweb: Sadece linux platformundaki gizli dosyaları tanımlamak için kodum var, yani "." Ile başlayan tüm dosyalar/klasörler. (nokta karakteri). Benim gereksinim, NTFS bölümü olan ve linux makineme bağlanabilen bir USB harddisk üzerindeki gizli dosya ve klasörleri tespit etmektir. –
"Gizli" özniteliği olan dosyaları mı kastediyorsunuz? Ya da 'os.walk' tarafından gösterilmeyen bir tür özel dosya mı? – AndiDog