如何在不使用太多磁盘空间的情况下在 tar 存档中创建文件的 sha1 校验和

car*_*rts 5 command-line tar pipe hashsum

我想以列表或新文件的形式获取简单 tar 存档中所有文件的 sha1 校验和

无需使用磁盘空间来解压大 tar 文件。带有管道和动态计算 sha1 的东西,将输出定向到 /dev/null

我在谷歌上搜索了很多,并用管道做了一些实验,但不能走得很远。

真的会为我节省大量检查备份的时间。

Vou*_*uze 7

太容易了 :

tar xvJf myArchive.tar.xz --to-command=sha1sum
Run Code Online (Sandbox Code Playgroud)

结果是这样的:

z/
z/DOCUMENTATION
3c4d9df9bcbd1fb756b1aaba8dd6a2db788a8659 *-
z/getnameenv.sh
1b7f1ef4bbb229e4dc5d280c3c9835d9d061726a *-
Run Code Online (Sandbox Code Playgroud)

或者使用以下命令创建“tarsha1.sh”:

#!/bin/bash

sha1=`sha1sum`
echo -n $sha1 | sed 's/ .*$//'
echo " $TAR_FILENAME"
Run Code Online (Sandbox Code Playgroud)

然后以这种方式使用它:

tar xJf myArchive.tar.xz --to-command=./tarsha1.sh
Run Code Online (Sandbox Code Playgroud)

结果是这样的:

3c4d9df9bcbd1fb756b1aaba8dd6a2db788a8659 z/DOCUMENTATION
1b7f1ef4bbb229e4dc5d280c3c9835d9d061726a z/getnameenv.sh
Run Code Online (Sandbox Code Playgroud)