Sponsored Content
Top Forums Shell Programming and Scripting Get the filename linked to symbolic link Post 302915996 by Don Cragun on Friday 5th of September 2014 04:02:26 PM
Old 09-05-2014
Or you could write your own readlink utility. Save the following in readlink.c:
Code:
#include <errno.h>
#include <stdio.h>
#include <unistd.h>

int
main(int argc, char *argv[]) {
        char    buf[2048];      // buffer for symbolic link
        int     err = 0;        // non-zero if errors found
        int     i;              // loop control
        int     len;            // lenght of cymlink data

        for(i = 1; i <argc; i++)
                if((len = (int)readlink(argv[i], buf, sizeof(buf))) == -1) {
                        perror(argv[i]);
                        err = 1;
                } else  printf("%*.*s\n", len, len, buf);
        return(err);
}

run:
Code:
make readlink

and then to get the contents of a symbolic link stored into a shell variable, use:
Code:
var=$(./readlink symlink)

This will give you an error if you give it the operand is a file that is not a symbolic link, and it will truncate the contents of symliinks that are longer than 2048 bytes, but that won't usually be a problem for what you're trying to do. The real readlink would stat() the file if readlink() failed with EINVAL and then, if the stat() succeeded would just print the filename.
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

symbolic Link

question abt symbolic link ... i'm doing the following ... ln -s x.sh ./scripts/y.sh and cat ./scripts/y.sh it is giving following error cat: cannot open y.sh Any reason u an think of ? But it is working fine when i goto scripts directory and cretae the symbolic link. ... (1 Reply)
Discussion started by: bhargav
1 Replies

2. UNIX for Dummies Questions & Answers

need some info about symbolic link and hard link

hello folks how y'all doin well i have some questions about symbolic link and hard link hope some one answer me i open terminal and join as root and i wrote ln -s blah blah then i wrote ls i see red file called blah blah but didn't understand what is this can some one explain and... (2 Replies)
Discussion started by: detective linux
2 Replies

3. Shell Programming and Scripting

tar the symbolic link

Hi Experts!! Can anyone help me out to know how can we tar the symbolic links. I would need to find the symbolic links present in the directory and then tar them out. I can find the links by find . -type l, but i need to know how to tar the symboilc link. Any help would be much appreciated.. ... (1 Reply)
Discussion started by: ganga.dharan
1 Replies

4. Shell Programming and Scripting

symbolic link

Hi, i am trying to create sym links on sles 11 , but it seems i am doing something wrong. oracle@tests:/u01/app/oracle/oradata/ACIS> pwd /u01/app/oracle/oradata/ACIS oracle@tests:/u01/app/oracle/oradata/ACIS> ln -s /db/ACIS/dbase/dbf/ /u01/app/oracle/oradata/ACIS/... (2 Replies)
Discussion started by: tonijel
2 Replies

5. UNIX for Dummies Questions & Answers

How two directories are linked (not symbolic link)

Hi, I'm trying to understand a "strange" setup: on one of the systems, when I cd into a directory, /data/logs, it takes me into /data/uat/logs (instead of /data/logs). These two directories are not symbolicly linked. Here's what I have: In /data, "ls -li" shows (among other things): ... (6 Replies)
Discussion started by: chenghui
6 Replies

6. Shell Programming and Scripting

Symbolic Link Help

Hello All, This may be a silly question to some but I am really stuck. Is there a way to reverse the following; sudo rm /bin/sh sudo ln -s /bin/bash /bin/sh It was part of a driver compile/installation procedure by Digi for Ubuntu stating that dash isn't supported and a symbolic link... (2 Replies)
Discussion started by: LAVco
2 Replies

7. Shell Programming and Scripting

ls on a symbolic link

Hi all, Can anyone please confirm if the command below is the only way that I can get what the symbolic link is set to? mnlxd110(oracle)/db/posd2/dba$: ls -l | grep "^l" lrwxrwxrwx 1 oracle dba 28 Aug 9 2011 bdump -> diag/rdbms/posp1/posp1/trace mnlxd110(oracle)/db/posd2/dba$:... (7 Replies)
Discussion started by: newbie_01
7 Replies

8. UNIX for Dummies Questions & Answers

[Solved] Symbolic link not allowed or link target not accessible

Hi everybody, I read about treads realted to this issue but they did not resovle issue given below. Please help me resolve issue given below I have html file under /srv/www/htdocs/actual_folder ls actual_folder/ test.html and following link works... (0 Replies)
Discussion started by: newbielgn
0 Replies

9. Shell Programming and Scripting

How to list all symbolic link?

how to list all symbolic link can i use find / path -type l (1 Reply)
Discussion started by: avtalan
1 Replies

10. UNIX for Dummies Questions & Answers

Symbolic link

Hi, trying to understand more about symblic link, when I compiled a program called "match" in one folder ~/downloadsoftware/I want this program to be accessible like a system command by putting a symbolic link in /usr/bin/ Not by setting the $PATH method in .bashrc at this time. What I did is:... (4 Replies)
Discussion started by: yifangt
4 Replies
LSTAT(3)								 1								  LSTAT(3)

lstat - Gives information about a file or symbolic link

SYNOPSIS
array lstat (string $filename) DESCRIPTION
Gathers the statistics of the file or symbolic link named by $filename. PARAMETERS
o $filename - Path to a file or a symbolic link. RETURN VALUES
See the manual page for stat(3) for information on the structure of the array that lstat(3) returns. This function is identical to the stat(3) function except that if the $filename parameter is a symbolic link, the status of the symbolic link is returned, not the status of the file pointed to by the symbolic link. EXAMPLES
Example #1 Comparison of stat(3) and lstat(3) <?php symlink('uploads.php', 'uploads'); // Contrast information for uploads.php and uploads array_diff(stat('uploads'), lstat('uploads')); ?> The above example will output something similar to: Information that differs between the two files. Array ( [ino] => 97236376 [mode] => 33188 [size] => 34 [atime] => 1223580003 [mtime] => 1223581848 [ctime] => 1223581848 [blocks] => 8 ) ERRORS
/EXCEPTIONS Upon failure, an E_WARNING is emitted. NOTES
Note The results of this function are cached. See clearstatcache(3) for more details. Tip As of PHP 5.0.0, this function can also be used with some URL wrappers. Refer to "Supported Protocols and Wrappers" to determine which wrappers support stat(3) family of functionality. SEE ALSO
stat(3). PHP Documentation Group LSTAT(3)
All times are GMT -4. The time now is 01:08 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy