in reply to Re: Testing if two paths point to the same file.
in thread Testing if two paths point to the same file.

stat will/may go in an infinite loop (until killed or defended against), unlike lstat, on a symbolic link loop.
  • Comment on Re^2: Testing if two paths point to the same file.

Replies are listed 'Best First'.
Re^3: Testing if two paths point to the same file.
by repellent (Priest) on Feb 03, 2009 at 15:39 UTC
    Really? On FreeBSD 6.3, Perl v5.8.8:
    $ ln -s i_scratch_your_back you_scratch_my_back $ ln -s you_scratch_my_back i_scratch_your_back $ cd you_scratch_my_back cd: too many levels of symbolic links: you_scratch_my_back $ perl -MData::Dumper -e '@s = stat("i_scratch_your_back"); print Dump +er(@s)'; date Tue Feb 3 07:31:40 PST 2009 $

    Despite this pathological case, stat does not defeat the purpose of the OP which was to find out if two paths pointed to the same (non-symlink) file. lstat on the other hand would fail is_same if tested with a plain file and its corresponding symlink.