我想为tar存档中的所有文件计算MD5。我用--to-command尝试了tar。tar -xf abc.tar --to-command='md5sum'
它输出如下。cb6bf052c851c1c30801ef27c9af1968 -
f509549ab4eeaa84774a4af0231cccae -
然后,我想用文件名替换“-”。tar -xf abc.tar --to-command='md5sum | sed "s#-#$TAR_FILENAME#"'
它报告错误。md5sum: |: No such file or directory
md5sum: sed: No such file or directory
md5sum: s#-#./bin/busybox#: No such file or directory
tar: 23255: Child returned status 1
最佳答案
您没有 shell ,因此无法使用(您还可能会看到|
作为参数传递给md5sum)。一种方法是自己调用 shell ,但是嵌套引号会带来一些麻烦:
tar xf some.tar --to-command 'sh -c "md5sum | sed \"s|-|\$TAR_FILENAME|\""'
关于使用--to-command的TAR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39243719/