Por seus comentários, você só precisa descer um nível de profundidade. Nesse caso, você poderia usar um glob para iterar nomes de diretórios e para cada dir salvar os caminhos de arquivo em uma matriz e, em seguida, imprimir o último elemento de cada caminho para fileNames.txt
:
#!/bin/sh
for dir in "$PWD"/*/; do
arr=( "$dir"* )
printf %s\n "${arr[@]##*/}" > "$dir"filesNames.txt
done
Para excluir links simbólicos, basta adicionar uma condição. if [[ ! -L "${dir%?}" ]]; then arr...