I would like to get the sha1 checksums of all files inside a simple tar archive as a list, or a new file

Without using the disk space to unpack the big tar file. Something with piping and calculating the sha1 on the fly, directing the output to /dev/null

I searched google a lot and did some experiments with pipes but could not get very far.

Would really save me a lot of time checking backups.


Too easy :

tar xvJf myArchive.tar.xz --to-command=sha1sum

The result is like this :

3c4d9df9bcbd1fb756b1aaba8dd6a2db788a8659 *-
1b7f1ef4bbb229e4dc5d280c3c9835d9d061726a *-

Or create "tarsha1.sh" with :


echo -n $sha1 | sed 's/ .*$//'

Then use it this way :

tar xJf myArchive.tar.xz --to-command=./tarsha1.sh

The result is like this :

3c4d9df9bcbd1fb756b1aaba8dd6a2db788a8659 z/DOCUMENTATION
1b7f1ef4bbb229e4dc5d280c3c9835d9d061726a z/getnameenv.sh
  • awesome. yes it is easy when you know the trtick ;) will try it out – carparts Aug 16 '16 at 9:48
  • I realized that I have a crippled tar on a busybox machine, so maybe you can also help on my followup question: unix.stackexchange.com/questions/303701 – carparts Aug 16 '16 at 12:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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