Очевидно, что вы не говорите об этом, потому что в find
нет ошибки, которая будет перечислять файлы за пределами указанного каталога, и в вашей Perl-программе нет ошибки, которая будет изобретать расширения.
$ find
.
./foo
./foo/a.good
./a.bad
./script
$ cat ./script
#!/bin/bash
cd $1
find . -type f | perl -ne 'print $1 if m/\.([^.\/]+)$/' | sort -u > $1extensions.txt
$ ./script foo
$ cat foo/fooextensions.txt
good
txt <-- From the output file you created inside the directory in which you search.