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 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 itselfHere "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 users@xxxxxxxxxxxxxxxxxxxxxxx To unsubscribe or change subscription options: https://admin.fedoraproject.org/mailman/listinfo/users Guidelines: http://fedoraproject.org/wiki/Mailing_list_guidelines