Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw

Symbolic Links

by Anonymous Monk
on Aug 02, 2001 at 20:33 UTC ( #101705=perlquestion: print w/ replies, xml ) Need Help??
Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:

I am trying to write a script that finds directories that are symbolically linked to accounts and then displays where that symbolic link is.
Is there a function of perl that displays where directories are linked?

I just want to avoid using something like:

open (SYMDIR, "cd /some/directory | pwd |");
print SYMDIR;

Well, actually there are other ways than that... But anyway, any help would be appreciated =)

Comment on Symbolic Links
Re: Symbolic Links
by nardo (Friar) on Aug 02, 2001 at 20:37 UTC
    You can use readlink to read where a symlink points, but it won't necessarily be the final destination since it can point to another symlink.
Re: Symbolic Links
by grinder (Bishop) on Aug 02, 2001 at 20:39 UTC
    You want to investigate the readlink function.

     my $dir = readlink( '/some/directory' );

    If you have symbolic links pointing to other symbolic links you will have to walk down the chain:

    while( -l $dir ) { $dir = readlink $dir }

    or more concise:

      1 while( -l $dir and $dir=readlink($dir))


    g r i n d e r

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://101705]
Approved by root
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others perusing the Monastery: (6)
As of 2015-03-28 11:41 GMT
Find Nodes?
    Voting Booth?

    When putting a smiley right before a closing parenthesis, do you:

    Results (625 votes), past polls