syntaxe rsync "tout exclure sauf"

Daniel Caillibaud ml at editionsdidier.com
Wed Jan 24 17:19:56 CET 2007


Stephane Jourdois wrote:
>> C'est bien mon pb, comment exclure "tout sauf..."
> 
> Pas seulement, tu veux tout exclure, sauf _des_sous_repertoires_ !
> Or simplement dans ton énoncé, il y a une ambiguité :
> 	Je veux exlure le répertoire images, mais pas le sous-répertoire
> 	images/.svn
> Difficile de formuler ça bien...
> 
>>>>> Pourquoi **, d'ailleurs ?
>>>> Pour prendre tout le contenu des rep .svn (et seulement eux).
>>> ".svn" suffit et est même plus fiable (e.g. ".svnblah" ne doit pas
>>> être exclu),
>> OK, mais je veux aussi .svn/blah, d'où le 2e *
> 
> Ca marche pas comme ça : en shell, ** = *

oui, mais rsync a sa syntaxe à lui là-dessus.

>>> car quand un répertoire est exclu, tout son contenu
>>> aussi.
>> Oui mais je veux justement l'inclure...

> Au final, seul find saura faire ça. rsync ne parcourt pas une arbo quand
> elle est exclue. Et ça n'est pas du tout illogique...

Bon, ben mon

rsync -avvn --exclude='*' --include='.svn**' /webdidier/www/vhosts/testsvn /webdidier/www/vhosts/contact.editionsdidier.com

a été remplacé par

cd /webdidier/www/vhosts/testsvn
find -type d -name .svn -exec cp -a --parents {} /webdidier/www/vhosts/contact.editionsdidier.com/ \;

Ca marche aussi...

-- 
Daniel


More information about the Shell mailing list