On 04/10/06, <b class="gmail_sendername"><a href="mailto:salsaman@xs4all.nl">salsaman@xs4all.nl</a></b> <<a href="mailto:salsaman@xs4all.nl">salsaman@xs4all.nl</a>> wrote:<div><span class="gmail_quote"></span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
> On Wed, Oct 04, 2006 at 04:47:01PM +0100, - Tethys wrote:<br>>> On 10/4/06, Simon Morris <<a href="mailto:simon.morris@cmtww.com">simon.morris@cmtww.com</a>> wrote:<br>>><br>>> >Problem there is I don't know what the duplicated filenames are...
<br>>> >Apparently on this filesystem (I'm about to inherit a problem unless I<br>>> >can deflect it away :-) ) they had a history of creating filenames that<br>>> >are identical apart from case.
<br>>><br>>> No problem:<br>>><br>>> #!/bin/sh<br>>><br>>> find "${1:-.}" -type d -print | while read dir<br>>> do<br>>>    preserve_case=$(ls -a1 "$dir" | wc -l)
<br>>>    ignore_case=$(ls -a1 "$dir" | sort -f | uniq -i | wc -l)<br>>>    if [ "$preserve_case" != "$ignore_case" ]<br>>>    then<br>>>        echo "Directory has duplicate filenames: $dir"
<br>>>    fi<br>>> done<br>><br>> But the problem is that he wants to know what the duplicated filenames<br>> are, right?  Knowing that there are duplicate filenames is obviously<br>> much simpler.
<br>><br><br>My version will do that. It also uses toLOWER_uni which the perl<br>guidelines recommend (to handle localised filenames).</blockquote><div><br><br>#!/bin/bash<br><br>find ${1:-.} -type f -exec basename {} \; | sort -f | uniq -di | \
<br>while read dupfilename<br>do<br>  echo $dupfilename:<br>  find ${1:-.} -iname "$dupfilename" -exec echo "  {}" \;<br>done<br><br>Pete<br></div><br></div>