我很难弄清楚我的脚本出了什么问题。
#!/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