web-dev-qa-db-fra.com

Bash Script à Tar, un dossier sauve le pointepath

Mon script gare un dossier dans mon annuaire My/Home/utilisateur et enregistre tout dans un dossier de sauvegarde. Cependant, lorsque j'ouvre chacun des tar.gz, tous ont tous les répertoires/home/utilisateur, puis les dossiers et les fichiers que je voulais compresser.

Mon 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

Que puis-je faire pour prévenir/home/utilisateur d'être enregistré?

2
dabadaba

Vous devez aller à l'intérieur de ce dossier. Quelque chose comme:

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

De plus, vaut mieux utiliser des guillemets pour variables lorsque ces variables se réfèrent aux noms de fichiers.

0
Radu Rădeanu