cdb(){ range=$(eval "echo '{1..$1}'"); toPrint="'../%.0s' $range"; printfToEval=$(echo "printf $toPrint"); toCd=$(eval $printfToEval); eval "cd $toCd"; }
Команда cdb() позволяет выйти на n уровней из текущей директории в терминале.
Она принимает один аргумент n, который указывает сколько уровней надо подняться вверх.
Сначала команда определяет переменную range, которая содержит последовательность чисел от 1 до n. Затем она определяет переменную toprint, в которой формируется строка '../%.0s' $range, указывающая на шаблон пути для поднятия вверх.
Далее формируется команда printf $toprint и она сохраняется в переменной printftoeval. Команда printf используется для генерации строки с указанным шаблоном пути.
В переменной tocd выполняется команда eval $printftoeval, которая выполняет ранее сформированную команду printf $toprint, которая возвращает строку с путем для поднятия вверх.
И наконец, команда eval "cd $tocd" используется для выполнения команды cd $tocd, которая меняет текущую директорию на указанный путь.
Таким образом, эта команда позволяет подняться на n уровней вверх из текущей директории. Альтернативой может быть использование команды cd .., которая поднимает на один уровень вверх.
