From owner-freebsd-bugs Thu Jan 10 4:40: 8 2002 Delivered-To: freebsd-bugs@hub.freebsd.org Received: from freefall.freebsd.org (freefall.FreeBSD.org [216.136.204.21]) by hub.freebsd.org (Postfix) with ESMTP id C364037B416 for ; Thu, 10 Jan 2002 04:40:02 -0800 (PST) Received: (from gnats@localhost) by freefall.freebsd.org (8.11.6/8.11.6) id g0ACe2A90718; Thu, 10 Jan 2002 04:40:02 -0800 (PST) (envelope-from gnats) Date: Thu, 10 Jan 2002 04:40:02 -0800 (PST) Message-Id: <200201101240.g0ACe2A90718@freefall.freebsd.org> To: freebsd-bugs@FreeBSD.org Cc: From: Bruce Evans Subject: Re: bin/33187: ls -dF and trailing slashes Reply-To: Bruce Evans Sender: owner-freebsd-bugs@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org The following reply was made to PR bin/33187; it has been noted by GNATS. From: Bruce Evans To: Mike Makonnen Cc: , , , Subject: Re: bin/33187: ls -dF and trailing slashes Date: Thu, 10 Jan 2002 23:38:47 +1100 (EST) On Thu, 10 Jan 2002, Mike Makonnen wrote: > On Thu, 10 Jan 2002 15:04:31 +1100 (EST) > Bruce Evans wrote: > > > It also breaks ls of symlinks. E.g.: > > > > $ ls -lF /var/crash /var/crash/ > > lrwxr-xr-x 1 root wheel 8 Mar 5 2001 /var/crash@ -> /c/crash > > > > /var/crash/: > > total 145202 > > -rw-r--r-- 1 4294967294 wheel 2 Jan 9 14:44 bounds > > -rw-r--r-- 1 4294967294 wheel 2630180 Jan 9 14:45 kernel.4 > > -rw-r--r-- 1 root wheel 5 May 19 1994 minfree > > -rw------- 1 4294967294 wheel 14680064 Nov 24 21:06 vmcore.1 > > -rw------- 1 4294967294 wheel 1048576 Nov 24 21:09 vmcore.2 > > -rw------- 1 4294967294 wheel 7053312 Jan 7 14:16 vmcore.3 > > -rw------- 1 4294967294 wheel 268435456 Jan 9 14:45 vmcore.4 > > I realize the pr has been suspended, but just to set the record straight... > this is not caused by the patch. The patch only comes into effect when both -d and -F are specified. I forgot it was -d and my fingers knew it was -l :-). Anyway, "ls -dF /var/crash/" should follow the symlink (if any). Appending a slash is a normal way to get symlinks followed. For ls, you can use -L, but most utilities don't have an equivalent. > > I think the slash should be stripped in the output at most. > > Yeah, you're right. I also just found out ls(1) will accept ``ls /usr////////''. So, should all trailing '/' be stripped on output or is it not > worth the effort/POSIX compliance/whatever ? I doubt that POSIX specifies the output of ls in enough detail to say, but I think stripping should not change the semantics of the pathnames, in case they are used for input. Stripping "//" to "/" changes the semantics, as does stripping "foo/" to "foo" if "foo" is not a directory. Otherwise, trailing slashes may be stripped without changing the semantics. Bruce To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message