I think it's really best that I stick to my find commands. chmod -R u=rwX,go=rX . worked really fast but it also made all my files executable.
Bad idea, asking for such a command. By the way, umask 022? What is meant by that? ----- Original Message ----- From: "Loren M. Lang" <[EMAIL PROTECTED]> To: "Giorgos Keramidas" <[EMAIL PROTECTED]> Subject: Re: chmod equivalent to find commands Date: Sun, 13 Mar 2005 02:15:00 -0800 > > On Sat, Mar 12, 2005 at 09:53:02PM +0200, Giorgos Keramidas wrote: > > On 2005-03-12 10:30, Eric McCoy <[EMAIL PROTECTED]> wrote: > > >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 {} \; > > > > Uhm, why? Even if that were possible, isn't clarity more important that > > stuffing as many actions as possible in one line? > > > > What you list above is similar to the way I use for changing the > > permissions of files/dirs and it works all the time. > > > > There's no reason to try to write one, long, complicated command just > > for the sake of making it one command instead of two. Otherwise, you > > may as well do more complex stuff like: > > Summing it up into one command does not neccessarily mean it's longer or > more complicated. I use the following command all the time to fix > permissions similar to what he seems to be doing. Though it's not > technically equivalent, it's probably all he needs. > > chmod -R u=rwX,go=rX . > > My umask of 022 simplifies the command to the following: > > chmod -R =rwX . > > > > > find . | while read line; do > > mode='' > > [ -d "${line}" ] && mode=0755 > > [ -f "${line}" ] && mode=0644 > > > > [ -n "${mode}" ] && echo "chmod ${mode} \"${line}\"" > > done | sh > > > > But this is getting quickly very difficult to remember easily and repeat > > consistently every time you want to do something similar :) > > > > >> 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 > > > > This is an excellent way to do this, IMHO. > > > > > If you were feeling crazy and use sh: > > > > > > find . | while read path; do \ > > > if [ -d "$path" ]; then chmod 755; > > > else chmod 644; fi; \ > > > done > > > > I guess you meant to write: > > > > find . | while read path; do \ > > if [ -d "$path" ]; then chmod 755 "${path}"; > > else chmod 644 "${path}"; fi; \ > > done > > > > Otherwise, many chmod failures are the only result. > > > > But this has a minor buglet. It will change everything that is not a > > directory to mode 0644. This mode is ok for files, but it may not be ok > > (or it may even fail) for other stuff (symbolic links, for instance). > > > > - Giorgos > > > > _______________________________________________ > > freebsd-questions@freebsd.org mailing list > > http://lists.freebsd.org/mailman/listinfo/freebsd-questions > > To unsubscribe, send any mail to "[EMAIL PROTECTED]" > > -- > I sense much NT in you. > NT leads to Bluescreen. > Bluescreen leads to downtime. > Downtime leads to suffering. > NT is the path to the darkside. > Powerful Unix is. > > Public Key: ftp://ftp.tallye.com/pub/lorenl_pubkey.asc > Fingerprint: CEE1 AAE2 F66C 59B5 34CA C415 6D35 E847 0118 A3D2 > << 2.dat >> -- ___________________________________________________________ Sign-up for Ads Free at Mail.com http://promo.mail.com/adsfreejump.htm _______________________________________________ freebsd-questions@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to "[EMAIL PROTECTED]"