Sign inSign up

qemux/udfread

Sponsored OSS

By qemux

โ€ขUpdated 26 days ago

Command-line UDF reader

Image
Developer tools
Operating systems
Databases & storage
1

718

qemux/udfread repository overview

โ UDFread

Build Version Size

UDFread is a small command-line interface for the libudfread library.

It can inspect and selectively read files from UDF images without mounting the image or extracting a complete large file first.

Release binaries statically link the corresponding upstream libudfread release, so users do not need to install a separate runtime library package.

โ Commands ๐Ÿ’ฟ

udfread info IMAGE
udfread ls [-l] [-R] IMAGE [PATH]
udfread stat IMAGE PATH
udfread cat IMAGE PATH
udfread extract IMAGE PATH DESTINATION
udfread range [-o DESTINATION] IMAGE PATH OFFSET [LENGTH]
udfread map IMAGE PATH
udfread blocks IMAGE PATH FILE_BLOCK [COUNT]

โ Examples ๐Ÿงช

Show information about a UDF image:

udfread info disc.iso

List the root directory or recursively inspect a subdirectory:

udfread ls -l disc.iso /
udfread ls -l -R disc.iso /documents

Show information about a file:

udfread stat disc.iso /documents/manual.pdf

Write a text file to standard output:

udfread cat disc.iso /README.TXT

Extract one file without unpacking the complete image:

udfread extract disc.iso /images/logo.png ./logo.png

Read only a selected byte range from a large file:

udfread range -o file-header.bin disc.iso /data/archive.bin 0 4096
udfread range disc.iso /data/archive.bin 0x1000 0x200 | sha256sum

range performs a real logical seek through libudfread, so it reads only the requested part of a file even when the UDF file uses multiple allocation extents.

Numbers may be decimal or hexadecimal with a 0x prefix.

Show how the logical blocks of a file map to physical locations in the image:

udfread map disc.iso /video/movie.m2ts
udfread blocks disc.iso /video/movie.m2ts 0 16

โ Case-insensitive paths ๐Ÿ”ค

Use -i or --ignore-case with any command that accepts a UDF path to resolve each path component using ASCII case-insensitive matching:

udfread stat -i disc.iso /DOCUMENTS/MANUAL.PDF
udfread extract --ignore-case disc.iso /IMAGES/LOGO.PNG ./logo.png

An exact component match always takes precedence. If no exact match exists and multiple entries differ only by ASCII letter case, the lookup fails as ambiguous instead of selecting an entry arbitrarily.

Output from commands such as stat and ls uses the actual path spelling stored in the image.

โ Install a release package ๐Ÿ“ฆ

Download the package matching the host architecture from the latest GitHub release and install it with apt:

sudo apt install ./udfread_VERSION_amd64.deb

The package has no runtime dependency on a separately installed libudfread package.

โ Build on Debian or Ubuntu ๐Ÿ› ๏ธ

The build automatically retrieves the newest stable upstream libudfread tag, builds it as a static library, and links it into udfread:

sudo apt-get update
sudo apt-get install -y build-essential git meson ninja-build pkg-config
make
sudo make install

To build a specific upstream release instead, remove any previously downloaded source and provide the desired tag:

make distclean
make LIBUDFREAD_REF=1.2.0

An existing source checkout can also be supplied directly:

make LIBUDFREAD_SOURCE=/path/to/libudfread LIBUDFREAD_REF=1.2.0

The default installation path is /usr/local/bin/udfread. To use another prefix:

make clean
make
sudo make install PREFIX=/usr

Use make clean to remove build products while retaining the downloaded upstream source, or make distclean to remove both.

โ Stars ๐ŸŒŸ

Stargazers

Tag summary

Content type

Image

Digest

sha256:84223fb14โ€ฆ

Size

24.6 kB

Last updated

26 days ago

docker pull qemux/udfread

This week's pulls

Pulls:

219

Last week