tar 存档和校验和为空

tar 存档和校验和为空

在 centos 7 上,我尝试归档并对目录进行校验和,但最后文件为空。

localpath=/backup
name=$(date '+%Y-%m-%d')
tar cvzf $localpath/BackUp$name.tgz $localpath/BackUp* | md5sum $localpath/BackUp$name.tgz > $localpath/checksum$name

你能告诉我我做错了什么吗?

答案1

管道 ,|用于将左侧命令的输出发送到右侧命令的输入。左侧和右侧的命令是同时启动的,只有从左到右的写入和读取才能同步管道的两部分。

在这种情况下,该tar命令不会输出任何md5sum应该读取的内容,并且md5sum会给出一个要处理的文件名,因此它无论如何都不会读取其标准输入流。

你可能想做的是不是使用管道,并md5sum在命令tar创建存档后调用。

tar -vz -c -f "$localpath/BackUp$name.tgz" some files
md5sum "$localpath/BackUp$name.tgz" >"$localpath/BackUp$name.md5"

相关内容