/ / Як знайти файл рекурсивно і одночасно у всіх підтеках у bash - bash, search, recursion, concurrency

Як знайти рекурсивно і одночасно файл у всіх підпапках у bash-bash, пошук, рекурсія, паралельність

Мені цікаво, як шукати всі вкладені папкирекурсивно і одночасно в bash. Сценарій спочатку перераховує всі підкаталоги і потім переходить до кожної підпапки одночасно. Потім, якщо в даному підкаталозі є підпапки, рекурсивно і одночасно переходить до підкаталогів.

Я не повинен використовувати find.

Я можу написати деяку рекурсивну функцію, яка йде на всі підтеки, але я не знаю, як зробити її одночасною: /

Чи є у вас якісь ідеї / підказки, як вирішити цю проблему?

Відповіді:

2 для відповіді № 1

Ось функція в bash, яка шукає файл:

search_file () # dir fname
{
local dir="$1" fname="$2" p

for p in "$dir"/* ; do
if test -d "$p" ; then
search_file "$p" "$fname"
fi
if test "$p" = "$dir/$fname" ; then
echo "$p"
fi
done
}

Ви також можете написати if test "${p##*/}" = "$fname" ... , щоб побачити, чи знайшли файл.