Bash script para tar uma pasta salva basepath

2

Meu script tars uma pasta no meu diretório / home / user e salva tudo em uma pasta de backup. No entanto, quando abro cada tar.gz, todos eles têm o diretório / home / user e, em seguida, as pastas e arquivos que eu queria compactar.

Meu script:

#!/bin/bash

if [ ! -d ~/backup ]; then
    mkdir ~/backup
fi

for i in 'ls ~/folder'; do
    echo "~/folder/$i"
    if [ -d ~/folder/$i ]; then
        tar -zcf ~/backup/$i.tar.gz ~/folder/$i
    fi
done

O que posso fazer para impedir que / home / user seja salvo?

    
por dabadaba 06.04.2014 / 11:49

1 resposta

0

Você deve ir para dentro dessa pasta. Algo como:

#!/bin/bash

if [ ! -d ~/backup ]; then
    mkdir ~/backup
fi

cd ~/folder

for i in *; do
    echo "~/folder/$i"
    if [ -d "$i" ]; then
        tar -zcf ~/backup/"$i".tar.gz "$i"
    fi
done

Além disso, é melhor usar cotações para variáveis quando essas variáveis se referirem a nomes de arquivos.

    
por Radu Rădeanu 06.04.2014 / 12:07