【发布时间】:2020-04-19 10:35:51
【问题描述】:
我需要对纯文本文件中列出的文件(在单个 tar 文件中)进行 tar。
如果包含文件列表的文本文件为空,如何防止创建 tar 文件?
【问题讨论】:
我需要对纯文本文件中列出的文件(在单个 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 文件。
【讨论】: