LINUX.ORG.RU

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

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

второй find тоже будешь bash’ем эмулировать?

Да запросто. Найдёт все *.c:

scan_a() {
        local p
        for p in "$1/"* "$1/."* ; do
                [[ -L "$p" ]] && continue
                if [[ -d "$p" ]]; then
                        [[ "${p:0-2:2}" == /. || "${p:0-3:3}" == /.. ]] && continue
                        scan_a "$p"
                elif [[ "${p:0-2:2}" == .c && "${p:0-3:1}" != / && -f "$p" ]]; then
                        convert "$p"
                fi
        done
}
Иногда так и надо, когда сложное условие поиска и невозможно запрограммировать встроенной логикой в find

А если первый find надо усложнить?

Вот именно, тогда find может и не справиться.

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

второй find тоже будешь bash’ем эмулировать?

Да запросто. Найдёт все *.c:

scan_a() {
        local p
        for p in "$1/"* "$1/."* ; do
                [[ -L "$p" ]] && continue
                if [[ -d "$p" ]]; then
                        [[ "${p:0-2:2}" == /. || "${p:0-3:3}" == /.. ]] && continue
                        scan_a "$p"
                elif [[ "${p:0-2:2}" == .c && "${p:0-3:1}" != / && -f "$p" ]]; then
                        convert "$p"
                fi
        done
}
Иногда так и надо, когда сложное условие поиска и невозможно запрограммировать встроенной логикой в find