From owner-freebsd-questions Fri Dec 20 19:49:33 2002 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 C7F8D37B401 for ; Fri, 20 Dec 2002 19:49:31 -0800 (PST) Received: from HAL9000.homeunix.com (12-232-220-15.client.attbi.com [12.232.220.15]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0240843EDC for ; Fri, 20 Dec 2002 19:49:31 -0800 (PST) (envelope-from dschultz@uclink.Berkeley.EDU) Received: from HAL9000.homeunix.com (localhost [127.0.0.1]) by HAL9000.homeunix.com (8.12.6/8.12.5) with ESMTP id gBL3nR2b001020; Fri, 20 Dec 2002 19:49:27 -0800 (PST) (envelope-from dschultz@uclink.Berkeley.EDU) Received: (from das@localhost) by HAL9000.homeunix.com (8.12.6/8.12.5/Submit) id gBL3nRKV001019; Fri, 20 Dec 2002 19:49:27 -0800 (PST) (envelope-from dschultz@uclink.Berkeley.EDU) Date: Fri, 20 Dec 2002 19:49:27 -0800 From: David Schultz To: Mark Cc: Ceri Davies , Andrew Cutler , freebsd-questions@FreeBSD.ORG Subject: Re: chown broken?? Message-ID: <20021221034927.GA804@HAL9000.homeunix.com> Mail-Followup-To: Mark , Ceri Davies , Andrew Cutler , freebsd-questions@FreeBSD.ORG References: <1040390551.921.36.camel@localhost> <200212201412.GBKECSM91804@asarian-host.net> <20021220141504.GB6893@submonkey.net> <200212201448.GBKEMQM99487@asarian-host.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <200212201448.GBKEMQM99487@asarian-host.net> Sender: owner-freebsd-questions@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG Thus spake Mark : > ----- Original Message ----- > From: "Ceri Davies" > To: "Mark" > Cc: "Andrew Cutler" ; > Sent: Friday, December 20, 2002 3:15 PM > Subject: Re: chown broken?? > > > > On Fri, Dec 20, 2002 at 03:12:17PM +0100, Mark wrote: > > > > > I must say, though, that while I understand this behaviour, one can > > > argue on what exactly "recursive" is to mean here. Intuitively, > > > the definition of "the current sub-directory and all sub-directories > > > below the current directory (and that for each subdirectory)" seems > > > the correct one. Which would exclude "..", as this is not a > sub-directory > > > of the current directory, but the parent. > > > > Not really. It recurses through the directories named on the command > > line, of which '..' happens to be one. > > > Yes, "the directories named on the command line" within the CURRENT > directory. Technically, "." and ".." are entries within the current > directory (try: "od -c ."), and they have inode numbers too. But that does > not deter me from deeming it a bit counter-intuitive to consider ".." a > directory of the current directory. :) Especially in the context of > recursion. So you want 'chown foo ..' to fail, as a special case? As I mentioned before, rm gets away with this because you don't want to remove the parent of the directory you're currently in. (Actually, some rm implementations *will* let you shoot yourself in the foot.) But it's perfectly reasonable to chown '..', even recursively, so chown can't make any assumptions. I object to going around and documenting this caveat in the manpages for every single utility that supports recursion through a directory tree. It doesn't really belong there, it belongs in a ``How to use the shell'' tutorial. The way Unix traditionally does parameter expansion makes it easy to shoot yourself in the foot in at least a dozen ways, and this is just one of them. To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-questions" in the body of the message