#!/usr/bin/perl use File::Find; my ($dir,$file) = @ARGV; # TODO usage, file and directory check my ($finode,$fnlinks) = (lstat($file))[1,3]; # TODO check for link count of 1 my @files; find(sub { return if $fnlinks == 0; # this is rubbish my ($inode,$nlink) = (lstat($_))[1,3]; return unless $inode == $finode; push(@files, $File::Find::name); $fnlinks--; }, $dir); print map {"$_\n"} @files;