Simple Rust program to extract AIX BFF files.
To compile it from source you can just install it using cargo install.
cargo install bffextract
Each release is available in compiled binary from Github. Linux build is using MUSL toolchain to make it work on older libc versions (e.g. CentOS 7) too.
https://github.com/ponchofiesta/bffextract-rs/releases
Extract content of BFF file (AIX Backup file format)
Usage: bffextract.exe [OPTIONS] <FILENAME> [FILE_LIST]...
Arguments:
<FILENAME> Path to BFF file.
[FILE_LIST]... Extract specific source file(s) and folders recursively only.
Options:
-C, --chdir <CHDIR> Extract to directory. [default: .]
-A, --attributes <ATTRIBUTES> Restore only specified file attributes.
Possible values: p = permissions (unix only)
o = owners (unix only)
t = timestamps
[default: t]
-t, --list List content of BFF archive.
-v, --verbose Displays details while extracting.
-n, --numeric List numeric user and group IDs.
-a, --acl Print ACL of records in AIX text format.
-h, --help Print help
-V, --version Print version
- Symlinks are unsupported on Windows. Character devices, block devices, sockets and fifo are unsupported. I don't see a need for them.
- Bad file format may be ignored in some cases.
Archive::new(...)uses strict parsing and returns an error when a malformed record is encountered.Archive::scan(...)uses best-effort scanning and skips malformed records when the stream can continue. This is what the CLI uses.
Based on: