O que há de errado com o meu script bash? [fechadas]

0

Estou com dificuldades para descobrir o que há de errado com o meu script.

#!/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

Quando executo o script, recebo o seguinte erro

./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
    
por HamsterDancer 11.07.2017 / 04:23

1 resposta

3

O erro real de tar na última linha (que eu acho que foi sua pergunta principal) é porque você não especificou uma ação real. O f especifica que um nome de arquivo é exibido. O v diz para fazer algo com detalhes. O z diz que o arquivo está compactado (e com a maioria das versões de tar é redundante).

Eu acho que a ação que você queria era t - listar os arquivos. Nesse caso, você precisaria:

tar -tvzf home-10-07-2017.tar.gz
    
por 11.07.2017 / 06:03