Методы поиска и исключения каталогов на различных языках программирования

Чтобы найти и исключить каталоги на различных языках программирования, я приведу примеры кода для Python, Bash и PowerShell.

Python:

import os
def find_exclude_directories(path, exclude_dirs):
    result = []
    for root, dirs, files in os.walk(path):
        dirs[:] = [d for d in dirs if d not in exclude_dirs]
        result.extend([os.path.join(root, d) for d in dirs])
    return result
path = '/path/to/search'
exclude_dirs = ['dir1', 'dir2']
directories = find_exclude_directories(path, exclude_dirs)
print(directories)

Баш:

#!/bin/bash
find_exclude_directories() {
    path=$1
    exclude_dirs=$2
    while IFS= read -r -d '' dir; do
        if [[ ! " ${exclude_dirs[@]} " =~ " ${dir} " ]]; then
            echo "$dir"
        fi
    done < <(find "$path" -type d -print0)
}
path="/path/to/search"
exclude_dirs=("dir1" "dir2")
directories=$(find_exclude_directories "$path" "${exclude_dirs[@]}")
echo "$directories"

PowerShell:

$path = "C:\path\to\search"
$excludeDirs = @("dir1", "dir2")
$directories = Get-ChildItem -Path $path -Directory -Recurse | Where-Object {
    $_.FullName -notin $excludeDirs
} | Select-Object -ExpandProperty FullName
$directories

Эти примеры кода демонстрируют, как рекурсивно находить каталоги, исключая определенные каталоги, указанные в списке или массиве exclude_dirs. Замените /path/to/searchна нужный каталог для поиска, а dir1и dir2на каталоги, которые вы хотите исключить.