Как научить скрипт на баше и powershell переходить рекурсивно по каталогам?

Приветствую!
Есть многоуровневая система каталогов, необходимо что бы скрипт рекурсивно проходил по ним, и выполнял:
идём в первый каталог
    if [ -d folder_name ] ; then
выполняем нужное действие
else
    идём в следующий каталог


Как это должно выглядеть?
Да, в названиях каталогов присутствуют такие моменты:
"name - folder & dir"
  • Вопрос задан
  • 3581 просмотр
Пригласить эксперта
Ответы на вопрос 3
bk0011m
@bk0011m
Системный администратор
В *nix есть такая удивительная тулза как: find.
Она умеет рекурсивно ходить по каталогам и вообще по всем дискам, ну и выполнять при этом какие-либо действия.
Вот пример из справки:
find /path -type d -exec chmod 0755 {} \;
Ответ написан
@FlyingBrick
Я бы написал свой рекурсивный обход функцией:

function doRecursiveThings ($path)
{
    $childs = Get-ChildItem $path
    
    foreach($child in $childs)
    {
        #Что-то делаем если надо делать для каждого элемента

        if( [System.IO.File]::GetAttributes($child.FullName) -eq [System.IO.FileAttributes]::Directory )
        {
            #Или тут что-то делаем, если нужно сделать что-то в случае захода в каталог

            doRecursiveThings ($child.FullName)
        }
    }
}

$path = "Путь к каталогу"

doRecursiveThings $path
Ответ написан
Комментировать
ls -dir -r
в PowerShell не подходит?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы