/ / Как да намерите файл рекурсивно и едновременно във всички подпапки в bash - bash, search, recursion, concurrency

Как да намерите файл рекурсивно и едновременно във всички подпапки в bash - bash, търсене, рекурсия, конкуренция

Чудя се как да търсим всички подпапкирекурсивно и едновременно в bash. Скриптът изброява първо всички поддиректории и след това отива на всяка подпапка едновременно. След това, ако има подпапки в дадена поддиректория, рекурсивно и едновременно отива в поддиректориите.

Не трябва да използвам намери.

Мога да напиша някаква рекурсивна функция, която отива на всички подпапки, но не знам как да го направя едновременно: /

Имате ли някаква идея / представа как да разрешите този проблем?

Отговори:

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" ... , за да видите дали сте намерили файла.