Linux zipnote command

Updated: 11/06/2021 by Computer Hope
zipinfo command

On Unix-like operating systems, the zipnote command views, adds, or edits a zipfile's comments. It also lets you rename files contained in the archive.

This page covers the Linux version of zipnote.

Description

Every file that is archived in the zip format may optionally contain comments, which are short notes or descriptions about individual files or the entire archive.

When you create a zipfile with the zip utility, you can add comments about individual files using zip's --entry-comments option. You can also add a comment about the entire archive using zip's --archive-comment option. These comments will be written to the zipfile as part of the archiving process.

To add comments after a zipfile has already been created, however, you can use zipnote.

Syntax

zipnote [-w] [-b path] [-h] [-v] [-L] zipfile

Options

-w Write comments to a zipfile from standard input (stdin).
-b path Use path to store the temporary zip file that is created during annotation.
-h Display a help message, and exit.
-v Display version information, and exit.
-L Display software license information, and exit.

How zipnote works

By default, zipnote will dump a zipfile's comments to standard output.

To make changes, you can redirect this output to a file, edit it manually, and then use zipnote to read in your changes and write them to the zipfile.

You can also use zipnote to rename the files in the archive by making special edits during this process.

Types of zipfile comments

"Archive comments" describe the archive as a whole, and are shown when a user views the contents of an archive, and also when a user extracts files from the archive.

"Entry comments" describe individual files in the archive. They are displayed when a user views the contents of an archive, but are usually not shown when the files are extracted.

Both these types of comments can be added or modified using zipnote.

Viewing a zipfile's comments

Let's say you have a zipfile called files.zip, which contains two files: file1 and file2. You can view files.zip's comments using the following command:

zipnote files.zip

The output looks like this:

@ file1
@ (comment above this line)
@ file2
@ (comment above this line)
@ (zip file comment below this line)

This shows us that there are two files, file1 and file2, and that there are no comments in the file. (If there were, we would see them here.)

If we view a list of the files in the archive using the -l option of unzip, like this:

unzip -l files.txt

...our file list looks like this:

Archive:  files.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
        0  2014-09-27 15:48   file1
        0  2014-09-27 15:48   file2
---------                     -------
        0                     2 files

If there were descriptions for the archive or the individual files, they would appear here.

Adding comments

To change the comments in files.zip using zipnote, we first need to capture zipnote's output to a file. Let's redirect the output to a file called comments.txt:

zipnote files.zip > comments.txt

Now, open the newly-created comments.txt file in your favorite text editor, adding lines so that it looks like this:

@ file1
This is the first file in our archive.
@ (comment above this line)
@ file2
This is the second file in our archive.
@ (comment above this line)
@ (zip file comment below this line)
This archive contains two files.

Save the file and exit your text editor.

Next, we run zipnote with the -w option. The command looks like this:

zipnote -w files.zip < comments.txt

This command says, "use the contents of comments.txt as input for zipnote, and write (-w) that data as the new comments of files.zip." When this command is run, our edits replace the comments in files.zip.

Let's use zipnote again, to check that our changes are written:

zipnote files.zip
@ file1
This is the first file in our archive.
@ (comment above this line)
@ file2
This is the second file in our archive.
@ (comment above this line)
@ (zip file comment below this line)
This archive contains two files.

We can also use unzip -l to list the archive contents, and we'll see our new comments:

unzip -l files.zip
Archive:  files.zip
This archive contains two files.
  Length      Date    Time    Name
---------  ---------- -----   ----
        0  2014-09-27 15:48   file1
This is the first file in our archive.
        0  2014-09-27 15:48   file2
This is the second file in our archive.
---------                     -------
        0                     2 files

Additionally, when we extract the files from the archive with unzip, it shows us the archive comment with the rest of the output:

unzip files.zip
Archive:  files.zip
This archive contains two files.
 extracting: file1                   
 extracting: file2

Using zipnote to rename the files in your archive

It's possible, in your edits to the comments, to rename the archived files themselves. For instance, here is the comments.txt file we were working with:

@ file1
This is the first file in our archive.
@ (comment above this line)
@ file2
This is the second file in our archive.
@ (comment above this line)
@ (zip file comment below this line)
This archive contains two files.

If we open this up in our editor again, we can insert a line beneath the file name and above the comment in the form "@=newfilename". For instance, let's rename our files file1 and file2 to file-one and file-two, respectively. We do this by adding two lines so that comments.txt looks like this:

@ file1
@=file-one
This is the first file in our archive.
@ (comment above this line)
@ file2
@=file-two
This is the second file in our archive.
@ (comment above this line)
@ (zip file comment below this line)
This archive contains two files.

Now we write our changes using zipnote -w, as we did before:

zipnote -w files.zip < comments.txt

...and check our changes using unzip -l:

unzip -l files.zip
Archive:  files.zip
This archive contains two files.
  Length      Date    Time    Name
---------  ---------- -----   ----
        0  2014-09-27 15:48   file-one
This is the first file in our archive.
        0  2014-09-27 15:48   file-two
This is the second file in our archive.
---------                     -------
        0                     2 files

...and voilà, the files are renamed.

Warning

There is no undo function for any of the changes you make with zipnote, so double check your comments file before writing to the archive! Any changes you make with the -w option are permanent.

Examples

zipnote myarchive.zip

Display details about myarchive.zip, including any comments, in a zipnote-specific format.

zipnote myarchive.zip > mycommentfile.txt

Redirect the output of zipnote to the file mycommentfile.txt, writing the comment information to that file.

zipnote -w myarchive.zip < mycommentfile.txt

Redirect the contents of mycommentfile.txt to zipnote, which takes them as input and writes them (-w) as comments to myarchive.zip.

unzip — List, test and extract compressed files in a zip archive.
zip — A compression and archiving utility.
zipcloak — Encrypt files within an existing zip archive.
zipsplit — Split a single zip archive into a set of smaller zip files.