Чтобы ответить на ваш точный вопрос, используйте следующее:
arr=( $(find /path/to/toplevel/dir -type f) )
Пример
$ find . -type f
./test1.txt
./test2.txt
./test3.txt
$ arr=( $(find . -type f) )
$ echo ${#arr[@]}
3
$ echo ${arr[@]}
./test1.txt ./test2.txt ./test3.txt
$ echo ${arr[0]}
./test1.txt
Однако, если вы просто хотите обрабатывать файлы по одному, вы можете использовать опцию find
-exec
, если сценарий несколько прост, или вы можете сделать цикл над тем, что find возвращает так:
while IFS= read -r -d $'\0' file; do
# stuff with "$file" here
done < <(find /path/to/toplevel/dir -type f -print0)