使用单个文件在当前目录中创建新的 tar 文件

Creating new tar file in current directory using single file

我正在编写一个 bash 脚本,该脚本将检查特定 fileName.log 的 tar 存档是否存在,如果不存在,则使用 fileName.log 创建一个。如果 tar 已经存在,那么我需要向其附加 fileName.log。我从来没有真正使用过 tar 档案,除了解压和解包 .tar.gz 已经给我的文件。我确定我的问题是我的语法,但我无法根据手册页找出正确的语法。

我的代码:

      # check if tarball for this file already exists. If so, append it. If not, create new tarball
      if [ -e "$newFile.tar" ];
      then
              echo "tar exists"
              tar -cvf "$newFile" "$newFile.tar"
      else
              echo "no tar exists"
              tar -rvf "$newFile"
      fi

如果你想将 $newfile 添加到 $newfile.tar,可以这样:

if [ -f "$newFile.tar" ];
then
        echo "tar exists"
        tar -rvf "$newFile.tar" "$newFile"
else
        echo "no tar exists"
        tar -cvf "$newFile.tar" "$newFile"
fi

非常接近,您将 -c-r 标志颠倒了(c 创建,r 追加)并且您想将文件名放在第一位,就像这样:

if [ -e "$newFile.tar" ];
then
    echo "tar exists"
    tar -rvf "$newFile.tar" "$newFile"
else
    echo "no tar exists"
    tar -cvf "$newFile.tar" "$newFile"
fi