Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Erro relativo aos caminhos

Prezados,

Tentei executar o script exatamente como o professor o fez no vídeo; a única alteração é que ao invés de chamar o script como compactador, o nomei como backup2.sh: titio@ubuntualuraserver:~/devops/scripts$ cat backup2.sh

#! /bin/bash

if [ "$#" -lt 2 ]; then
        echo "O programa $0 requer nome do arquivo e arquivos a serem compactados"
        exit 1
fi

arquivo_saida="$1"
arquivos=("${@:2}")
tar -czf "$arquivos_saida" "${arquivos[@]}"
echo "Compactado com sucesso em $arquivo_saida"
```. 

Porém, ao executar o script, tive essa saída de erro: 
titio@ubuntualuraserver:~/devops/scripts$ ./backup2.sh arquivo.tar.gz /home/titio/devops/docs/arq1.txt /home/titio/devops/docs/arq2.txt
tar: Removing leading `/' from member names
tar (child): : Cannot open: No such file or directory
tar (child): Error is not recoverable: exiting now
tar: Removing leading `/' from hard link targets
tar: : Cannot write: Broken pipe
tar: Child returned status 2
tar: Error is not recoverable: exiting now
Compactado com sucesso em arquivo.tar.gz
2 respostas
solução!

Olá, Carlos!

Parece que há um pequeno erro no seu script. O problema está na linha onde você define o nome do arquivo de saída. No seu script, você escreveu tar -czf "$arquivos_saida" "${arquivos[@]}", mas a variável correta é arquivo_saida e não arquivos_saida.

Aqui está a correção que você precisa fazer:

#! /bin/bash

if [ "$#" -lt 2 ]; then
        echo "O programa $0 requer nome do arquivo e arquivos a serem compactados"
        exit 1
fi

arquivo_saida="$1"
arquivos=("${@:2}")
tar -czf "$arquivo_saida" "${arquivos[@]}"
echo "Compactado com sucesso em $arquivo_saida"

Note que a variável correta é arquivo_saida e não arquivos_saida.

Depois de fazer essa correção, seu script deve funcionar corretamente. Tente novamente executá-lo com:

./backup2.sh arquivo.tar.gz /home/titio/devops/docs/arq1.txt /home/titio/devops/docs/arq2.txt

Espero ter ajudado e bons estudos!

Grato pela correção!