我需要对纯文本文件中列出的文件(在单个tar文件中)进行tar处理。
如果包含文件列表的文本文件为空,如何防止创建tar文件?
取决于方法,如何创建文件,您可以有0、1或更多行。如果全部清除为0,则您没有文件:
l=$(cat filelist.txt|wc -l)
if [ "$l" -eq 0 ]
then echo "No files in the list";exit 1
fi
如果为1,则只能输入,也可以只有一个文件。您可以通过以下方式进行检查:
l=$(cat filelist.txt|wc -l)
if [ "$l" -eq 1 ]
then if [ ! -e $(cat filelist.txt) ]
then echo "No files in the list";exit 1
fi
fi
如果要在一行上进行,则可以执行以下操作:
tar xvf tarfile.tar `cat filelist.txt`|| rm tarfile.tar
或者,如果您想抑制所有消息,可以像这样:
tar xvf tarfile.tar `cat filelist.txt` >/dev/null 2>&1|| rm tarfile.tar
此命令将从filelist.txt
创建tar文件,如果出现错误,例如文件中的空列表(或磁盘空间不足),将删除tar文件。