[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: шелл/chmod



На 05 Dec 2006 17:46:41
Dmitry E. Oboukhov <p151.f75.n5004.z2@fidonet.avanto.org> записано:

> нужно в одном скрипте сделать чтобы права на все файлы в каталогах и
> подкаталогах стали 0644, а на все каталоги 0755.
> 
> find /path -type d -exec chmod 0755 "{}" ";"
> find /path -type t -exec chmod 0644 "{}" ";"
> 
> прекрасно справляется с этой задачей, но работает очень медленно
> (подкаталоги содержжат тысячи файлов).
> 
> сперва я сделал так:
> 
> find /path -type d|xargs chmod 0755
> find /path -type t|xargs chmod 0644
> 
> работает существенно быстрее (на порядок примерно), но спотыкается на
> файлах содержащих пробелы в имени :-\
> 
> вернулся к первому варианту, но быстродействие его угнетает.
> 
> кто-нибудь может предложить что-то более дельное?
> 
> --- Mutt/1.5.13 (2006-08-11)
>  * Origin: Простые задачи решают без нас! (2:5004/75.151)
       find /tmp -name core -type f -print | xargs /bin/rm -f

       Find  files named core in or below the directory /tmp and delete
them.  Note that this will work incorrectly if there are any filenames
containing newlines, single or double quotes, or spaces.

       find /tmp -name core -type f -print0 | xargs -0 /bin/rm -f

Это из find(1)



Reply to: