我的 bash 脚本出了什么问题?

我的 bash 脚本出了什么问题?

我很难弄清楚我的脚本出了什么问题。

#!/bin/bash
echo "Good Day $USER"

if [ -f "$1" ]
then 
    tar -cvf home-10-07-2017.tar --files-from /dev/null
    echo "You are about to back up the following files… $*"
for i in "$@"
do
    if [ -f "$i" ]
    then
        PROCEED='YES'
    else
         PROCEED='NO'
    fi  

    if [ $PROCEED='YES' ]
    then
        tar -rvf home-10-07-2017.tar "$i"
    fi
done
        tar -vzf home-10-07-2017.tar.gz
else
      echo 'You did not enter any files to backup'
fi

当我运行脚本时出现以下错误

./backups.sh first.txt second.txt 
Good Day fed
You are about to back up the following files… first.txt second.txt
first.txt
second.txt
tar: You must specify one of the '-Acdtrux', '--delete' or '--test-label'      options

答案1

最后一行的实际错误tar(我猜这是您的主要问题)是因为您没有指定实际操作。指定f后面跟随一个文件名。详细地说v要做某事。表示z该文件已被压缩(并且对于大多数版本来说tar是多余的)。

我猜您想要的操作是t- 列出文件。在这种情况下,您需要:

tar -tvzf home-10-07-2017.tar.gz

相关内容