[Name]
unsquashfs - tool to uncompress, extract and list squashfs filesystems

[Description]
Squashfs is a highly compressed read-only filesystem for Linux.
It uses either gzip/xz/lzo/lz4/zstd compression to compress both files, inodes
and directories.  Inodes in the system are very small and all blocks are
packed to minimise data overhead. Block sizes greater than 4K are supported
up to a maximum of 1Mbytes (default block size 128K).

Squashfs is intended for general read-only filesystem use, for archival
use (i.e. in cases where a .tar.gz file may be used), and in constrained
block device/memory systems (e.g. embedded systems) where low overhead is
needed.

[Examples]
.TP
unsquashfs IMAGE.SQFS
Extract IMAGE.SQFS to "squashfs-root" in the current working directory.
.TP
unsquashfs -d output IMAGE.SQFS
Extract IMAGE.SQFS to "output" in the current working directory.
.TP
unsquashfs -d . IMAGE.SQFS
Extract IMAGE.SQFS to current working directory.
.TP
unsquashfs -linfo IMAGE.SQFS
Output a listing of IMAGE.SQFS with file attributes to stdout, while extracting
the filesystem to "squashfs-root".
.TP
unsquashfs -lls IMAGE.SQFS
Output a listing of IMAGE.SQFS with file attributes to stdout, but do not
extract the filesystem.  The listing will be prefixed with "squashfs-root".
.TP
unsquashfs -d "" -lls IMAGE.SQFS
Output a listing of IMAGE.SQFS with file attributes to stdout, but do not
extract the filesystem.  The listing will not be prefixed with "squashfs-root".
.TP
unsquashfs IMAGE.SQFS fs/squashfs
Extract only the "fs/squashfs" directory.
.TP
unsquashfs IMAGE.SQFS "[Tt]est/example*"
Extract all files beginning with "example" inside top level directories
called "Test" or "test".
.TP
unsquashfs -excludes IMAGE.SQFS "test/*data*.gz"
This will extract everything except for files that match *data*.gz in the
test directory.  The -excludes option tells Unsquashfs to exclude the files
on the command line rather than extract them.
.TP
unsquashfs -excludes IMAGE.SQFS "... *.gz"
This will extract everything except for files that match *.gz anywhere
in the image.   The "..." means this is a non-anchored exclude which
matches anywhere.
.TP
unsquashfs -ex "test/*data*.gz" \; IMAGE.SQFS test
This uses both extract and exclude options, to tell Unsquashfs to only
extract the "test" directory, and to exclude any files within it that
match *data*.gz.
.TP
unsquashfs -ex "... *.gz" IMAGE.SQFS test
This uses both extract and exclude options, to tell Unsquashfs to only
extract the "test" directory, and to exclude files which match "*.gz"
anywhere within "test" directory or sub-directories.
.TP
unsquashfs -dest output -max-depth 2 IMAGE.SQFS
Extract only the top two levels of IMAGE.SQFS to "output" directory.
.TP
unsquashfs -max-depth 2 IMAGE.SQFS "test/*.gz"
Only extract the gzipped files in the test directory.
.TP
unsquashfs -llc -max-depth 2 IMAGE.SQFS "test/*.gz"
Output a listing of the gzipped files in the test directory to stdout,
but do not extract them.
.TP
unsquashfs -no-xattrs IMAGE.SQFS
Do not extract any extended attributes.  Any extended attributes in the
filesystem will be ignored.
.TP
unsquashfs -xattrs-include "^user." IMAGE.SQFS
Filter the extended attributes and only extract extended attributes in the
user namespace from the Squashfs filesystem.
.TP
unsquashfs -xattrs-exclude "^user." IMAGE.SQFS
Filter the extended attributes and do not extract any extended attributes in
the user namespace from the Squashfs filesystem.
.PP
Note: when passing wildcarded names to Unsquashfs, they should be quoted (as in
the above examples), to ensure that they are not processed by the shell.
