在 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"