Rekurzivni chmod

Miroslav Lachman 000.fbsd at quip.cz
Sun Sep 26 19:53:15 CEST 2010


Dan Lukes wrote:

[...]

>>> find /path/to/adr -type f -print0 | xargs -0 chmod 600
>>>
>>> find /path/to/adr -type d -print0 | xargs -0 chmod 700
>>
>> Ano, toto je asi obecne nejefektivnejsi reseni. Ja bych ale asi pouzil
>> variantu s -exec
>>
>> $ find adr -type ... -exec chmod ...
>>
>> A proto me to neda se nezeptat, jak se co do efektivnosti budou lisit
>> pristupy find s -exec a find + xargs?
>
> Znacne, i kdyz absolutni rozdil bude hodne zaviset na poctu memenych
> souboru a hardwarove konfiguraci pocitace. V pripade "exec" pro KAZDY
> nalezeny soubor spoustis chmod - to jest pro kazdy provadis fork a exec,
> parsing parametru a pak vlastni zmenu. V pripade "xargs" provadis pro
> kazdy soubor jen vlastni zmenu - fork,exec i getopt se provadi jen
> jednou vzdy pro pomerne velkou skupinu souboru.

Ja bych k tomu jen doplnil kratkou citaci z manualu, podle ktere ten 
rozdil mezi xargs a exec neni az tak jednoznacny, zalezi vic na tom, 
jestli se pouzije -exec {} \;, nebo -exec {} +

-exec utility [argument ...] {} +
   Same as -exec, except that ``{}'' is replaced with as many path-
   names as possible for each invocation of utility.	This behaviour
   is similar to that of xargs(1).

Mirek


More information about the Users-l mailing list