Re: Calculating the target of a symlink

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]


Patrick O'Callaghan writes:

A script I'm writing needs to work out the target of a symbolic link,
i.e. given:

$ touch foo
$ ln -s foo bar

the function should print bar when given foo as a parameter. The manual
says "ls -L" should do this, but it doesn't seem to work:

$ touch foo
$ ln -s foo bar
$ ls -l foo bar
lrwxrwxrwx 1 poc poc 3 Jun 19 21:32 bar -> foo
-rw-rw-r-- 1 poc poc 0 Jun 19 21:32 foo
$ ls -L bar

(should give foo)

Have I misunderstood what "ls -L" does?
Yes, you did. The description of the -L option reads:

      -L, --dereference
             when showing file information for a symbolic link, show informa-
             tion for the file the link references rather than for  the  link

Here "file information" means attributes like the modification time, the inode number, and such. A symbolic link has its own modification time, and inode number, that's separate from the referenced file's modification time and inode number. Normally, 'ls' shows you the symbolic link's "file information". The -L option displays, instead, the referenced's file's information.
                                         Is there a bug? And is there a
better way of doing this?
If you want to read the contents of a symbolic link, from a shell script,
use the "readlink" command.

Attachment: pgpGDWrQrqgHs.pgp
Description: PGP signature

users mailing list
[email protected]
To unsubscribe or change subscription options:

[Index of Archives]     [Current Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite News]     [Yosemite Photos]     [KDE Users]     [Fedora Tools]     [Fedora Docs]

  Powered by Linux