in reply to RE: Simple file question under linux
in thread Simple file question under linux
#!/usr/local/bin/perl -w use strict; use Cwd; sub symlink_resolve { my $symlink = "./" . shift; my ($path, $file); my $here = getcwd (); while (-l $symlink) { ($path, $file) = $symlink =~ m|(.*/)(.*)|s; chdir ($path) || return undef; $symlink = "./" . readlink ($file) || return undef; } ($file) = $symlink =~ m|(?:.*/)(.*)|; $path = getcwd () || return undef; chdir ($here) || die; return "$path/$file"; } { # # Delete it if already exists # unlink 'sym.final', 'sym.temp/sym.link1', 'sym.link2', 'sym.temp/sy +m.link3', 'sym.link4'; rmdir 'sym.temp'; mkdir 'sym.temp', 0777; open (FH, '>sym.final') || die; close FH; # # Create a symlink: ~/sym.link4 -> ~/sym.temp/sym.link3 -> ~/sym.l +ink2 -> ~/sym.temp/sym.link1 -> ~/sym.final # symlink ('../sym.final', 'sym.temp/sym.link1') || die; symlink ('sym.temp/sym.link1', 'sym.link2') || die; symlink ('../sym.link2', 'sym.temp/sym.link3') || die; symlink ('sym.temp/sym.link3', 'sym.link4') || die; # # The test... Should tell us that sym.link4 resolves to sym.final # die unless my $file = symlink_resolve ('sym.link4'); print "sym.link4 resolves to $file\n"; # # Clean up after ourselves # unlink 'sym.final', 'sym.temp/sym.link1', 'sym.link2', 'sym.temp/sy +m.link3', 'sym.link4'; rmdir 'sym.temp'; }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
RE: (jcwren) RE: (2) Simple file question under linux
by merlyn (Sage) on Oct 12, 2000 at 18:25 UTC |