Как получить имена каталогов только с помощью команды ls?

public static int WordCount(string str)
{        
    int num=0;
    bool wasInaWord=true;;

    if (string.IsNullOrEmpty(str))
    {
        return num;
    }

    for (int i=0;i< str.Length;i++)
    {
        if (i!=0)
        {
            if (str[i]==' ' && str[i-1]!=' ')
            {
                num++;
                wasInaWord=false;
            }
        } 
            if (str[i]!=' ')
            {
                wasInaWord=true;                
            }
    }
    if (wasInaWord)
    {
        num++;
    }
    return num;
}
0
задан user8314628 17 January 2019 в 12:56
поделиться

3 ответа

Мне не известен вариант ls, чтобы сделать это.

Вы можете попробовать

(cd /student/xxxx/209_repo && ls -d */)

Это запускает новый подоболочек, из-за (...) и в этом подоболочке изменяется в каталог .../209_repo, а затем выполняет ls.

После команды вы все еще находитесь в той директории, в которой находились, так как каталог изменений был выполнен только в подоболочке.

0
ответ дан Ralf 17 January 2019 в 12:56
поделиться

Или стандартная команда для поиска поддерева каталогов также find . -type d, и вы можете настроить ее и добавить некоторую фильтрацию.

0
ответ дан Honza P. 17 January 2019 в 12:56
поделиться

Аналогично @ user7369280, но без вложенной оболочки

cd /student/xxxx/209_repo/ && ls -d */ && cd -

РЕДАКТИРОВАТЬ

Для смягчения неудачной команды ls и возврата к wd:

cd /student/xxxx/209_repo/ && ls -d */ && cd - || cd -

0
ответ дан asimovwasright 17 January 2019 в 12:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: