Re: pb avec fonctions bash

Page principale

Répondre à ce message
Auteur: Edgar Bonet Orozco
Date:  
À: guilde
Sujet: Re: pb avec fonctions bash
> [...]
> function incrbackup() { 
>         (tar -X $HOME/.nobackup -cf - `find $HOME \! -type d -newer /mnt/zip/home -print `\
>         | tar -C /mnt/zip -xvf - )
>          (touch /mnt/zip/home)
>             }

>
> avec un fichier .nobackup du style:
>
> *.wav
> *.au
> *.tga
> *.ps
> *.netscape/cache/*
> *.mp3
> *.o
>
> qui evite de prendre les fichiers de ce type la dans la sauvegarde.
>
> Fullbackup fonctionne comme je m'y attends, par contre la fonction incrbackup
> prend bien en compte la date des fichiers, mais le filtrage par l'option
> -X $HOME/.nobackup n'as pas lieu.
>
> Quelqu'un voit-il pourquoi?


Une petite constatation expérimentale (le man n'est pas très clair à ce
sujet) : quand tu demandes à tar de sauver un fichier, il le sauve
indépendament de l'option -X. Quand tu lui demandes de sauver un
répertoire, il en filtre le contenu selon le paramètre de -X.

Ma suggestion :

echo -n '.*\.wav$\|.*\.au$\|.*\.tga$\|.*\.ps$\|' > ~/.nobackup
echo '.*\.netscape/cache/.*\|.*\.mp3$\|.*\.o$' >> ~/.nobackup

function incrbackup() {
    PATTERN=`cat $HOME/.nobackup`
    touch /mnt/zip/home   # Je préfère le faire avant le tar
    tar cf - `find $HOME -type f -newer /mnt/zip/home \
        \! -regex $PATTERN` | tar -C /mnt/zip -xvf -
}


Tu peux aussi créer la regexp à partir de ton .nobackup actuel à coups
de sed ou awk si tu veux.

Edgar.