From owner-freebsd-questions@FreeBSD.ORG Sun Mar 13 11:12:32 2005 Return-Path: Delivered-To: freebsd-questions@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 519E716A4CE for ; Sun, 13 Mar 2005 11:12:32 +0000 (GMT) Received: from hosea.tallye.com (joel.tallye.com [216.99.199.78]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3618C43D1F for ; Sun, 13 Mar 2005 11:12:29 +0000 (GMT) (envelope-from lorenl@alzatex.com) Received: from hosea.tallye.com (hosea.tallye.com [127.0.0.1]) by hosea.tallye.com (8.12.8/8.12.10) with ESMTP id j2DBCLUQ020008 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Sun, 13 Mar 2005 03:12:21 -0800 Received: (from sttng359@localhost) by hosea.tallye.com (8.12.8/8.12.10/Submit) id j2DBCKl1020006; Sun, 13 Mar 2005 03:12:20 -0800 X-Authentication-Warning: hosea.tallye.com: sttng359 set sender to lorenl@alzatex.com using -f Date: Sun, 13 Mar 2005 03:12:20 -0800 From: "Loren M. Lang" To: Fafa Diliha Romanova Message-ID: <20050313111220.GH18080@alzatex.com> References: <20050313103312.1A2E84BE6D@ws1-1.us4.outblaze.com> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="7SAgGoIHugoKhRwh" Content-Disposition: inline In-Reply-To: <20050313103312.1A2E84BE6D@ws1-1.us4.outblaze.com> User-Agent: Mutt/1.4.1i X-GPG-Key: ftp://ftp.tallye.com/pub/lorenl_pubkey.asc X-GPG-Fingerprint: B3B9 D669 69C9 09EC 1BCD 835A FAF3 7A46 E4A3 280C cc: "Loren M. Lang" cc: freebsd-questions@freebsd.org Subject: Re: chmod equivalent to find commands X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 13 Mar 2005 11:12:32 -0000 --7SAgGoIHugoKhRwh Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Sun, Mar 13, 2005 at 05:33:12AM -0500, Fafa Diliha Romanova wrote: >=20 > I think it's really best that I stick to my find commands. >=20 > chmod -R u=3DrwX,go=3DrX . worked really fast but it also made all > my files executable. That should only of happened if they already had at least one execute bit set. Now if you mistyped it as a lower-case x, then it's garenteed to set the execute bit. >=20 > Bad idea, asking for such a command. >=20 > By the way, umask 022? What is meant by that? umask is used to mask off certain permission bits from being set when a file is created. Most files are created with permissions 666, but a umask of 022 will mask it to 644. For directories it would mask 777 to 755. Other common umask are 002, 027, and 077. Umask: 022 002 027 077 022 002 027 077 Start: 666 666 666 666 777 777 777 777 Finish: 644 664 640 600 755 775 750 700 The techninal operation is "mode & ~umask" Now when you use the string =3DrwX instead of something like u=3DrwX, no qualifier in front of the =3D, +, or - sign, then it sets all bits minus what is masked off so a umask of 022 will prevent it from setting the write bit on group or other permissions. >=20 > ----- Original Message ----- > From: "Loren M. Lang" > To: "Giorgos Keramidas" > Subject: Re: chmod equivalent to find commands > Date: Sun, 13 Mar 2005 02:15:00 -0800 >=20 > >=20 > > On Sat, Mar 12, 2005 at 09:53:02PM +0200, Giorgos Keramidas wrote: > > > On 2005-03-12 10:30, Eric McCoy 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 t= hat > > > 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: > >=20 > > 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. > >=20 > > chmod -R u=3DrwX,go=3DrX . > >=20 > > My umask of 022 simplifies the command to the following: > >=20 > > chmod -R =3DrwX . > >=20 > > > > > > find . | while read line; do > > > mode=3D'' > > > [ -d "${line}" ] && mode=3D0755 > > > [ -f "${line}" ] && mode=3D0644 > > > > > > [ -n "${mode}" ] && echo "chmod ${mode} \"${line}\"" > > > done | sh > > > > > > But this is getting quickly very difficult to remember easily and rep= eat > > > 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 "freebsd-questions-unsubscribe@freeb= sd.org" > >=20 > > -- > > 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. > >=20 > > Public Key: ftp://ftp.tallye.com/pub/lorenl_pubkey.asc > > Fingerprint: CEE1 AAE2 F66C 59B5 34CA C415 6D35 E847 0118 A3D2 > >=20 > << 2.dat >> >=20 > --=20 > ___________________________________________________________ > Sign-up for Ads Free at Mail.com > http://promo.mail.com/adsfreejump.htm >=20 --=20 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 =20 --7SAgGoIHugoKhRwh Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.1 (GNU/Linux) iD8DBQFCNCAUbTXoRwEYo9IRArjuAJ9YEJdlq+td4kbIuPDgMoU631GwfwCdFTII Y5ayBQS/ucWeQzRt6JAgygs= =YHfs -----END PGP SIGNATURE----- --7SAgGoIHugoKhRwh--