Vyloučení některých názvů souborů a adresářů vzory z Najít

hlasů
3

Snažím se najít všechny soubory, které nejsou aktuální, ve srovnání s CVS. Jak se naše struktura CVS je rozbité (není rekurzivně dobře v některých adresářích) Snažím se jej vyřešit s nálezem teď.

Co mám teď, je toto:

for i in `find .  -not \( -name *\.jpg \) -path './bookshop/mediaimg' -prune -o -path '*/CVS*' -prune -o  -path './files' -prune  -o -path './images/cms' -prune -o -path './internal' -prune -o -path './limesurvey171plus_build5638' -prune  -o -path './gallery2' -prune -o  -print  `; do cvs status  $i |grep Status ; done &>~/output.txt

Ale nějak jsem pokus o vyloučení snímků (JPG v tomto případě) nefunguje, oni ještě objeví. Každý, kdo má nějaký návrh na to, jak se dostat ven z mých výsledků najít?

Položena 15/11/2010 v 13:35
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
2

To se nedaří ze stejného důvodu, že smícháním boolean AND a OR vždy selže.

Co říkáte tady je opravdu (v pseudokódu):

If (
    File Not Named '*.jpg' AND
    Path Matches './bookshop/mediaimg' AND
    Prone OR
    Path Matches '*/CVS*' AND
    Prune OR
    Path Matches './files' AND
    Prune OR
    Path Matches './images/cms' AND
    Prune OR
    Path Matches  './internal' AND
    Prune OR
    Path Matches  './limesurvey171plus_build5638' AND
    Prune OR
    Path Matches  './gallery2' AND
    Prune OR
    Print
)

Teď tisk vždy vrátí hodnotu true, a myslím, že prořezávat dělá stejně, takže můžete vidět, že žádná z ANDs jedno, jestli některý OR zápasů. Pečlivé používání závorek pravděpodobně získá výsledky, které jste po.

Odpovězeno 18/11/2010 v 20:03
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more