Date: Sat, 12 Mar 2005 10:30:46 -0500 From: Eric McCoy <emccoy@haystacks.org> To: Fafa Diliha Romanova <fteg@london.com> Cc: FreeBSD Questions <freebsd-questions@freebsd.org> Subject: Re: chmod equivalent to find commands Message-ID: <42330B26.2040508@haystacks.org> In-Reply-To: <20050312115359.C14EF4BE6D@ws1-1.us4.outblaze.com> References: <20050312115359.C14EF4BE6D@ws1-1.us4.outblaze.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Fafa Diliha Romanova wrote: > hello. > > i know there's an equivalent to these two find commands that > can be summed up in one chmod command: > > find . -type d -exec chmod 755 {} \; > find . -type f -exec chmod 644 {} \; > > it fixes my permissions ... > i haven't tested this yet but i think it's wrong: chmod -R u+rwX,a+rX > > what would be the best solution here? I would do it the same way you do, but with xargs instead: find . -type X -print0 | xargs -0 chmod XXX If you were feeling crazy and use sh: find . | while read path; do \ if [ -d "$path" ]; then chmod 755; else chmod 644; fi; \ done The latter is overkill, but the approach can be useful for nontrivial operations on systems that don't support -print0. It also has the benefit that you can do it over ssh without having to copy over a script, e.g. ssh user@host sh -s <script.sh (No nightmares from having to double- or triple-escape special characters, either.) Sorry, I don't know how to do it all with chmod. I assume you've consulted the excellent FreeBSD man pages?
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?42330B26.2040508>