GNU bug report logs - #18179
stat doesn't dereference symlinked file name

Previous Next

Package: coreutils;

Reported by: Tomasz Pala <gotar <at> polanet.pl>

Date: Sun, 3 Aug 2014 09:41:01 UTC

Severity: normal

Tags: notabug

Done: Bob Proulx <bob <at> proulx.com>

Bug is archived. No further changes may be made.

Full log


Message #8 received at 18179 <at> debbugs.gnu.org (full text, mbox):

From: Bob Proulx <bob <at> proulx.com>
To: Tomasz Pala <gotar <at> polanet.pl>
Cc: 18179 <at> debbugs.gnu.org
Subject: Re: bug#18179: stat doesn't dereference symlinked file name
Date: Sun, 3 Aug 2014 15:39:33 -0600
tag 18179 + notabug
close 18179
thanks

Thanks for the bug report.  However this seems to be a
misunderstanding of the available print formats.

Tomasz Pala wrote:
> ~: touch a
> ~: ln -s a b
> ~: stat -c "%n" a
> a
> ~: stat -c "%n" b
> b
> ~: stat -Lc "%n" b
> b

You need %N to show what you are wanting to show.

  $ stat -c %N b
  ‘b’ -> ‘a’
  $ stat -Lc %N b
  ‘b’

> ~: stat -Lc "%n" b
> b
> the last command should return 'a'.

Not quite.  The %n returns the file name as handed to stat on the
command line.  To get the quoted name dereference if a symbolic link
then you need the %N format.

         %N     quoted file name with dereference if symbolic link

> To be more verbose:
> 
> ~: stat b
>   File: `b' -> `a'
>   Size: 1               Blocks: 0          IO Block: 4096   symbolic link
> Device: 10h/16d Inode: 60112068    Links: 1
> 
> ~: stat -L b
>   File: `b'
>   Size: 0               Blocks: 0          IO Block: 4096   regular empty file
> Device: 10h/16d Inode: 60112022    Links: 1
> [...]
> 
> one cannot get the righthand part of dereference only (the same applies
> to %N).

I read the above part several times but your meaning was not clear.
In any case I see no bug in stat.

Perhaps you really want readlink?

  $ readlink b
  a

  $ readlink -f b
  /tmp/a

For what I believe you are doing the typical idiom is to use
"readlink" to print the value of the symbolic link.

Bob




This bug report was last modified 10 years and 289 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.