Portál AbcLinuxu, 24. července 2025 07:15


Dotaz: find - negace pravidla

9.5.2007 19:31 Filip Hesse | skóre: 20
find - negace pravidla
Přečteno: 274×
Odpovědět | Admin

Zálohovací script udělá jako poslední
find . -type "f" -exec sha1sum -b {} >> kontrola.sha1 \;
Jenomže find najde i rozpracovaný soubor kontrola.sha1, připíše ho do sebe a potom je tento soubor vždy vadný. Potřeboval bych v příkazu find něco jako
-name not "kontrola.sha1"

Problém nejde obejít vynecháním find, tedy voláním samotného
sha1sum -b * > kontrola.sha1
protože soubory jsou poschovávány i v podadresářích. Předem díky za nápady.

Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

kozzi avatar 9.5.2007 19:34 kozzi | skóre: 55 | blog: vse_o_vsem | Pacman (Bratrušov)
Rozbalit Rozbalit vše Re: find - negace pravidla
Odpovědět | | Sbalit | Link | Blokovat | Admin
Já nevím a co tak ten soubor uložit někam jinam ?
Linux je jako mušketýři "jeden za všechny, všichni za jednoho"
9.5.2007 19:46 Filip Hesse | skóre: 20
Rozbalit Rozbalit vše Re: find - negace pravidla

No to by také šlo. Ale čekal bych řešení v parametrech samotného find, vždyť je to ohromný a nabušený nástroj.

mkoubik avatar 9.5.2007 19:57 mkoubik | skóre: 5 | blog: lorem_ipsum | Praha 8 - Bohnice
Rozbalit Rozbalit vše Re: find - negace pravidla
Odpovědět | | Sbalit | Link | Blokovat | Admin
find . -type "f" -name ! "kontrola.sha1" -exec sha1sum -b {} >> kontrola.sha1
Plesk! | Population | Industry
mkoubik avatar 9.5.2007 19:59 mkoubik | skóre: 5 | blog: lorem_ipsum | Praha 8 - Bohnice
Rozbalit Rozbalit vše Re: find - negace pravidla
Ještě lepší možná bude:
find . -type "f" -name (! "kontrola.sha1") -exec sha1sum -b {} >> kontrola.sha1
(se závorkama), ale nezkoušel jsem to takže nevím, jestli jsou potřeba.
9.5.2007 20:21 xxl | skóre: 26
Rozbalit Rozbalit vše Re: find - negace pravidla
find . -type f ! -name "kontrola.sha1" -print0 | xargs -0 sha1sum -b > kontrola.sha1
9.5.2007 22:54 Lu-Tze | skóre: 15 | blog: Lu-Tzeho blog
Rozbalit Rozbalit vše Re: find - negace pravidla
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nezdá se mi moc šikovné milionkrát spouštět jeden program s jedním parametrem, když by to spouštět jenom milion/n-krát s n parametry.

Použij schema

find ... | xargs sha1sum ... > ...

A ten kontrolní soubor dávej mimo prohledávaný adresář. Pokud použiješ to, co ti radí nade mnou, pak budeš vynechávat i soubory kontrola.sha1, které v té adresářové struktuře opravdu jsou. Sice můžeš argumentovat, že tam žádné nemáš, ale není to dobrý a obecný přístup :-)
David Watzke avatar 10.5.2007 11:25 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: find - negace pravidla
Netřeba dávat soubor mimo prohledávaný adresář:
find . ! -wholename ./kontrola.sha1
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
11.5.2007 19:24 Filip Hesse | skóre: 20
Rozbalit Rozbalit vše Re: find - negace pravidla
Odpovědět | | Sbalit | Link | Blokovat | Admin

Díky všem za rady. Je hodně způsobů, a i když mi stačí jeden, dost jsem se toho naučil.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.