import sys file = open(sys.argv[1]) chunksize = 256 pos = -(chunksize + 7) while 1: file.seek(pos, 2) stuffs = file.read(chunksize + 7) print pos if "ustar " in stuffs: usloc = stuffs.find("ustar ") + (file.tell() - chunksize - 7) headloc = usloc - 257 print "found ustar at %s, last header starts at %s - chop to %s" % (usloc, headloc, headloc-1) print "command is: head -c +%s %s | tar xv" % (headloc-1, sys.argv[1]) sys.exit(0) pos -= chunksize