Compression and decompression
ppk pack archives files or directories to .ppk; ppk extract unpacks .ppk or compatible .tar.gz. Neither handles encryption.
ppk pack --input ./data --output data.ppk --apply
ppk extract --input data.ppk --output-dir ./data-out --apply
ppk pack accepts files or directories (default .ppk output). ppk extract accepts .ppk and legacy .tar.gz; creates the output directory if needed.
ppk pack --input ./data --output data.ppk --overwrite --apply
ppk extract --input data.ppk --list
ppk extract --input data.ppk --output-dir ./data-out --overwrite --apply
Existing outputs and non-empty directories are not overwritten. Decrypt .ppke via Encryption with ppk decrypt to .ppk, then ppk extract; or use ppk decrypt --extract in one step.
Reject absolute paths and path traversal on extract so archives cannot escape the target directory.