使用tar和grep命令检查tar文件中是否存在文件

时间:2013-10-22 03:17:53

标签: unix ksh tar

我有一个脚本可以检查tar文件中是否存在文件,但是有些错误,因为它总是会转到脚本的“else”部分。我很确定它不应该那样。

日期为“Mon dd”格式(1月11日)。

echo "enter date: \c"
read date
tarfile=`tar -tvf tarfile.tar | grep some_file | grep "$date"`

if [ -f "$tarfile" ]; then
   echo "yes"
else
   echo "no"
fi

感谢。

1 个答案:

答案 0 :(得分:8)

因为some_file位于tarfile.tar文件中,但您的if正在检查它是否在文件系统中。

您可以像这样改变它

if tar –tf tarfile.tar some_file >/dev/null 2>&1; then
    echo "tarfile.tar contains some_file"
fi