LINUX.ORG.RU

История изменений

Исправление vodz, (текущая версия) :

Я поискал по https://devmanual.gentoo.org/eclass-reference/index.html но что-то не нашел функции для рекурсивного обхода

Реурсия всегда выглядит очень просто, примерно так: parse() { for f in «$1»/*; do [[ -d $f ]] && parse «$f»; ... done } Для этого не надо делать особых алгоритмических фокусов «на память», как-бы само-собой очевидно. Применять bash вместо find полезно только тогда, когда у вас далее для простых файлов есть хитрый алгоритм, который зависит от бог знает чего - от имени каталога, от глубины рекурсии, от количества и так далее.

Исправление vodz, :

Я поискал по https://devmanual.gentoo.org/eclass-reference/index.html но что-то не нашел функции для рекурсивного обхода

Реурсия всегда выглядит очень просто, примерно так: parse() { for f in «$1»/*; do [[ -d $f ]] && parse «$1/$f»; ... done } Для этого не надо делать особых алгоритмических фокусов «на память», как-бы само-собой очевидно. Применять bash вместо find полезно только тогда, когда у вас далее для простых файлов есть хитрый алгоритм, который зависит от бог знает чего - от имени каталога, от глубины рекурсии, от количества и так далее.

Исходная версия vodz, :

Я поискал по https://devmanual.gentoo.org/eclass-reference/index.html но что-то не нашел функции для рекурсивного обхода

Реурсия всегда выглядит очень просто, примерно так: parse() { for f in *; do [[ -d $1 ]] && parse; ... done } Для этого не надо делать особых алгоритмических фокусов «на память», как-бы само-собой очевидно. Применять bash вместо find полезно только тогда, когда у вас далее для простых файлов есть хитрый алгоритм, который зависит от бог знает чего - от имени каталога, от глубины рекурсии, от количества и так далее.