ziptool

ziptool
modify zip archives

ziptool [-ceghnrst] [-l length] [-o offset] zip-archive command [command-args ...] [command [command-args ...] ...]

ziptool modifies the zip archive zip-archive according to the commands given.

Supported options:

Check zip archive consistency when opening it.
Error if archive already exists (only useful with -n).
Guess file name encoding (for stat command).
Display help.
length
Only read length bytes of archive. See also -o.
Create archive if it doesn't exist. See also -e.
offset
Start reading input archive from offset. See also -l.
Print raw file name encoding without translation (for stat command).
Follow file name convention strictly (for stat command).
Disregard current file contents, if any. Note: use this with care, it deletes all existing file contents when you modify the archive.

For all commands below, the index is zero-based. In other words, the first entry in the zip archive has index 0.

Supported commands and arguments are:

name content
Add file called name using the string content from the command line as data.
name
Add directory name.
name file_to_add offset len
Add file name to archive, using len bytes from the file file_to_add as input data, starting at offset.
name archivename index offset len
Add file called name to archive using data from another zip archive archivename using the entry with index index and reading len bytes from offset.
index
Output file contents for entry index to stdout.
index flags
Print the number of extra fields for archive entry index using flags.
index extra_id flags
Print number of extra fields of type extra_id for archive entry index using flags.
index
Remove entry at index from zip archive.
index extra_idx flags
Remove extra field number extra_idx from archive entry index using flags.
index extra_id extra_index flags
Remove extra field number extra_index of type extra_id from archive entry index using flags.
Print archive comment.
flag
Print state of archive flag flag.
index extra_index flags
Print extra field extra_index for archive entry index using flags.
index extra_id extra_index flags
Print extra field extra_index of type extra_id for archive entry index using flags.
index
Get file comment for archive entry index.
flags
Print number of entries in archive using flags.
name flags
Find entry in archive with the filename name using flags and print its index.
index name
Rename archive entry index to name.
index data
Replace file contents for archive entry index with the string data.
comment
Set archive comment to comment.
flag value
Set archive flag flag to value.
index extra_id extra_index flags value
Set extra field number extra_index of type extra_id for archive entry index using flags to value.
index comment
Set file comment for archive entry index to string comment.
index method compression_flags
Set file compression method for archive entry index to method using compression_flags. Note: Currently, compression_flags are ignored.
index method password
Set file encryption method for archive entry index to method with password password.
index timestamp
Set file modification time for archive entry index to UNIX mtime timestamp.
timestamp
Set file modification time for all archive entries to UNIX mtime timestamp.
password
Set default password for encryption/decryption to password.
index
Print information about archive entry index.

Some commands take flag arguments. Each character in the argument sets the corresponding flag. Use 0 or the empty string for no flags.

Supported flags are:

get_archive_flag and set_archive_flag work on the following flags:

Some commands take compression method arguments. Supported methods are:

Some commands take encryption method arguments. Supported methods are:

The ziptool utility exits 0 on success, and >0 if an error occurs.

Add a file called teststring.txt to the zip archive testbuffer.zip with data “This is a test.\n” where “\n” is replaced with a newline character:
ziptool testbuffer.zip add teststring.txt \"This is a test.\n\"

Delete the first file from the zip archive testfile.zip:

ziptool testfile.zip delete 0

zipcmp(1), zipmerge(1), libzip(3)

ziptool was added in libzip 1.1.

Dieter Baron <dillo@nih.at> and Thomas Klausner <wiz@gatalith.at>