Можно использовать
find:
find /etc/* | while read -r path; do
if [[ -f "$path" ]]; then
printf "Файл: %s\n" "$path";
elif [[ -d "$path" ]]; then
printf "Мамка: %s\n" "$path";
fi
done
/etc/* - путь поиска. В данном случае будут получены все файлы и папки каталога
/etc.
При помощи дополнительных параметров, можно ограничить выборку.
Например, ограничиться текущим уровнем:
-maxdepth 0
.
Найти только каталоги:
-type d
.
Или только файлы:
-type f
.
find /etc/* -maxdepth 0 | while read -r path; do
if [[ -f "$path" ]]; then
printf "Файл: %s\n" "$path";
elif [[ -d "$path" ]]; then
printf "Папка: %s\n" "$path";
fi
done
Для получения подробностей см.
find --help
.
Если все еще нужен будет массив, то можно сформировать в цикле:
declare -a files
find /etc/* -maxdepth 0 -type f | while read -r path; do
files+=("$path")
done