【问题标题】:Prevent creating empty Tar file in AIX Unix防止在 AIX Unix 中创建空的 Tar 文件
【发布时间】:2020-04-19 10:35:51
【问题描述】:

我需要对纯文本文件中列出的文件(在单个 tar 文件中)进行 tar。

如果包含文件列表的文本文件为空,如何防止创建 tar 文件?

【问题讨论】:

    标签: unix aix


    【解决方案1】:

    取决于创建文件的方法,您可以有 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 文件。

    【讨论】:

    • 感谢@Romeo,所以没有一行 TAR 命令可以仅为非空文件创建存档文件?
    • @sqlpractice,您是否尝试过编辑答案中的想法?
    猜你喜欢
    • 2012-05-25
    • 2023-03-06
    • 2021-03-22
    • 2014-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多