Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

Let's assume I have a several gigabyte tar file, but I also happen to know that the very last file written to the archive is something important that I need. Since tar files are appended sequentially, is there a way I can make tar read into the archive from the end to find this file, instead of starting from the beginning and reading over gigabytes of irrelevant data?

share|improve this question
add comment

1 Answer 1

up vote 6 down vote accepted

No, unfortunately there is not. From Wikipedia

Another weakness of the tar format compared to other archive formats is that there is no centralized location for the information about the contents of the file (a "table of contents" of sorts). So to list the names of the files that are in the archive, one must read through the entire archive and look for places where files start. Also, to extract one small file from the archive, instead of being able to lookup the offset in a table and go directly to that location, like other archive formats, with tar, one has to read through the entire archive, looking for the place where the desired file starts. For large tar archives, this causes a big performance penalty, making tar archives unsuitable for situations that often require random access of individual files.

share|improve this answer
    
I agree with this, except I can't think of a reason why it should be impossible for a program to be able to start from the end of a TAR file to search backwards for those same file markers. –  andyortlieb Sep 15 '11 at 17:43
    
I actually tried to do this after I posted my answer. I was not successful, but I only spent about 10 minutes on it. –  Louis Marascio Sep 15 '11 at 18:00
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.