pycdlib-explorer - tool to examine and modify ISOs using
pycdlib
pycdlib-explorer <iso-file>
This is a tool to examine and modify existing ISO files on disk.
Using this tool, the files, directories, and metadata on an ISO can be
examined, new files can be added, and old files can be deleted. Note that
due to the nature of the ISO standard, files or directories on the ISO
cannot be modified in place in a general way. To accomplish this, remove the
file and then re-add it with new contents.
The commands that change the contents of the ISO only modify the
in-memory copy. Changes are written out to a new ISO file when the
write command is issued.
pycdlib-explorer has no command-line options; instead, it is
controlled entirely at runtime through commands. The following section
describes the available commands in pycdlib-explorer.
- add_file
<iso_path> <src_filename> [rr_name=<rr_name>]
[joliet_path=<joliet_path>]
- Add the contents of src_filename to the ISO at the location
specified in iso_path. If the ISO is a Rock Ridge ISO,
rr_name must be specified; otherwise, it must not be. If the ISO is
not a Joliet ISO, joliet_path must not be specified. If the ISO is
a Joliet ISO, joliet_path is optional, but highly recommended to
supply.
- cd <iso_dir>
- Change the current working directory to relative or absolute ISO path
iso_dir.
- cwd
- Show the current working directory.
- exit
- Exit out of pycdlib-explorer.
- get <iso_file>
<out_file>
- Copy the contents of the relative or absolute ISO path iso_file
into out_file.
- help
- Print the available commands. Use "help <cmd>" for a more
detailed description of the commands, including the command-line arguments
they require.
- ls
- Show the contents of the current working directory. The format of the
output is: TYPE(F=file, D=directory) NAME.
- mkdir <iso_path>
[rr_name=<rr_name>] [joliet_path=<joliet_path>]
- Make a new directory called iso_path. If the ISO is a Rock Ridge
ISO, rr_name must be specified; otherwise, it must not be. If the
ISO is not a Joliet ISO, joliet_path must not be specified. If the
ISO is a Joliet ISO, joliet_path is optional, but highly
recommended to supply.
- print_mode
[iso9660|rr|joliet|udf]
- Change which 'mode' of filenames are printed out. There are four main
modes: ISO9660 (iso9660, the default), Rock Ridge (rr), Joliet (joliet),
and UDF (udf). The original iso9660 mode only allows filenames of 8
characters, plus 3 for the extension. The Rock Ridge extensions allow much
longer filenames and much deeper directory structures. The Joliet
extensions also allow longer filenames and deeper directory structures,
but in an entirely different context (though in most circumstances, the
Joliet context will mirror the ISO9660/Rock Ridge context). The UDF Bridge
extensions add an entirely parallel UDF context to the ISO as well. Any
given ISO will always have ISO9660 mode, but may have any combination of
Rock Ridge, Joliet, and UDF (including none of them). Running this command
with no arguments prints out the current mode. Passing 'iso9660' as an
argument sets it to the original ISO9660 mode. Passing 'rr' as an argument
sets it to Rock Ridge mode. Passing 'joliet' as an argument sets it to
Joliet mode. Passing 'udf' as an argument sets it to UDF mode.
- quit
- Exit out of pycdlib-explorer.
- rm_file
<iso_path>
- Remove the file named iso_path from the ISO. Note that this must be
a file; to remove a directory, use rmdir.
- rmdir
<iso_path>
- Remove the directory named iso_path from the ISO. Note that this
must be a directory; to remove a file, use rm_file.
- tree
- List the contents of the ISO in a tree-like format, similar to the bash
tree command.
- write
<out_file>
- Write a valid ISO9660 file out to out_file, taking into account any
changes made while running the program. This is also sometimes referred to
as "mastering" the ISO. Note that the out_file must NOT
be the same file as the input file, or the resulting ISO will not work
properly.
Chris Lalancette <clalancette@gmail.com>