โ๏ธโ๐ฅ filefrag
Python library to get FIE and command line tool
๐ฆ Install
See the video for a demo including installing from source, but you can install with pip:
pip install filefrag
โถ๏ธ Usage
Run pyfilefrag
on the command line. See --help
for details. It has
--verbose
, and --json
outputs for your parsing pleasure.
To use the library, just call filefrag.FileMap('/path/whatever')
to build a map
of the extents in the file using ioctlโs interface. Then you can poke about in
the guts of a file:
- โ๏ธโ๐ฅ inspect fragmentation
- ๐ find out where data is on your physical drive
- ๐ฐ compare extents between paths
- ๐ use them as dict keys
- ๐ณ๏ธ check files for holes, like before and after hole punching
- โ verify your deduplication strategy, write your own stats tool
- ๐ฉ dump file layouts to json (
print(f"{filemap:j}"
) - โ ๏ธ break your disk because you believed the outputs of this alpha release!
Comes with a Device class to do comparisons, so it ought to work with fragments in files on different mountpoints, bind mounts and so on (unfortunately not snapโs FUSE mounts; theyโre far too abstract and piped in via a socket)
๐ Example
from filefrag import FileMap
mapping = FileMap('/usr/bin/bash')
print(mapping.extents)
print(extents)
โ๏ธ License
Licensed under the WTFPL with one additional clause:
- Donโt blame me.
Do whatever the fuck you want, just donโt blame me.
๐ค Contributing
Not that this thing will ever be big enough to need a code of conduct, but itโs a good excuse to pimp out my common fucking sense code of conduct.