我有脚本来验证tar文件是否有效。我在这个例子中使用cat
,但实际上我正在验证流式传输的amazon s3文件。
#!/bin/bash
cat $1 | tar zxf - > /dev/null
if [ $? -eq 0 ]; then
echo "File is ok ... $1"
else
echo "File is corrupted ... $1"
fi
问题是tar文件提取.tar.gz中的文件。我尝试了不同的变体,如tar -C /dev/null
,但没有运气。它要么失败,要么将文件输出到磁盘。
如何在没有编写文件的情况下提取tar文件?其他一些帖子建议tar t
来获取文件列表。但我不是百分之百确定只是获取文件列表将验证tar包含的文件的完整性。
答案 0 :(得分:1)
如果可能,我会在S3存储桶上生成一个哈希值,然后在下载文件后将其与哈希值进行比较。