Как перейти в каталог с помощью cd и ls (для выбора столбца и элемента)?

Это задокументировано на вики Ubuntu . По умолчанию он установлен для уменьшения количества зависимостей в пакетах, но, как вы обнаружили, это означает, что порядок библиотек имеет значение :, вам необходимо убедиться, что объекты (любого типа )появляются до ] библиотеки, которые они используют.

Вы можете отключить это с помощью --no-as-needed.

0
01.02.2020, 16:53
2 ответа

Я полагаю, вы могли бы использовать цикл выбора:

select dir in *; do cd -- "$dir"; break; done

Однако на самом деле это больше, чем обычное использование cd, но вы можете сделать из этого функцию:

cdls () {
    local PS3='cdls>'
    select dir in *; do
        if [[ -d "$dir" ]]; then
            cd -- "$dir"
            break
        else
            printf '%s\n' "You can only cd into a directory" >&2
        fi
    done
}

Кроме того, в первую очередь не имеет особого смысла показывать файлы каталога, не относящиеся к -, поскольку вы не можете cdв них зайти, поэтому вы можете просто:

cdls () {
    local PS3='cdls>'
    select dir in */; do
            cd -- "$dir"
            break
    done
}
3
28.04.2021, 23:24

Если вы спросите: «Как мне cdперейти к 4-му элементу в списке ls?», тогда

cd "$(ls | tail -n +6 | head -n 1)"
1
28.04.2021, 23:24

Теги

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