tar-mode

Homepage: https://www.gnu.org/software/emacs

Author: Jamie Zawinski

Summary

Simple editing of tar files from GNU Emacs

Commentary

This package attempts to make dealing with Unix 'tar' archives easier.
When this code is loaded, visiting a file whose name ends in '.tar' will
cause the contents of that archive file to be displayed in a Dired-like
listing.  It is then possible to use the customary Dired keybindings to
extract sub-files from that archive, either by reading them into their own
editor buffers, or by copying them directly to arbitrary files on disk.
It is also possible to delete sub-files from within the tar file and write
the modified archive back to disk, or to edit sub-files within the archive
and re-insert the modified files into the archive.  See the documentation
string of tar-mode for more info.

This code now understands the extra fields that GNU tar adds to tar files.

Do not attempt to use tar-mode.el with crypt.el, you will lose.

   ***************   TO DO   ***************

o  chmod should understand "a+x,og-w".

o  The code is less efficient that it could be - in a lot of places, I
   pull a 512-character string out of the buffer and parse it, when I could
   be parsing it in place, not garbaging a string.  Should redo that.

o  I'd like a command that searches for a string/regexp in every subfile
   of an archive, where  would leave you in a subfile-edit buffer.
   (Like the Meta-R command of the Zmacs mail reader.)

o  Sometimes (but not always) reverting the tar-file buffer does not
   re-grind the listing, and you are staring at the binary tar data.
   Typing 'g' again immediately after that will always revert and re-grind
   it, though.  I have no idea why this happens.

o  Tar-mode interacts poorly with crypt.el and zcat.el because the tar
   write-file-hook actually writes the file.  Instead it should remove the
   header (and conspire to put it back afterwards) so that other write-file
   hooks which frob the buffer have a chance to do their dirty work.  There
   might be a problem if the tar write-file-hook does not come *first* on
   the list.

o  Block files, sparse files, continuation files, and the various header
   types aren't editable.  Actually I don't know that they work at all.

Rationale:

Why does tar-mode edit the file itself instead of using tar?

That means that you can edit tar files which you don't have room for
on your local disk.

I don't know about recent features in gnu tar, but old versions of tar
can't replace a file in the middle of a tar file with a new version.
Tar-mode can.  I don't think tar can do things like chmod the subfiles.
An implementation which involved unpacking and repacking the file into
some scratch directory would be very wasteful, and wouldn't be able to
preserve the file owners.

Dependencies

Reverse dependencies