Большинство из этих ответов не будут выполнять нечеткий поиск, как это делает возвышенный текст - они могут совпадать с частью ответа, но они не выполняют функцию «просто найди все буквы в этом порядке».
Я думаю, это немного ближе к тому, что вы хотите. Я собрал специальную версию cd ('fcd'), которая использует нечеткий поиск, чтобы найти целевой каталог. Супер просто - просто добавьте это в ваш bashrc:
function joinstr { local IFS="$1"; shift; echo "$*"; }
function fcd { cd $(joinstr \* $(echo "$*" | fold -w1))* }
Это добавит * между каждой буквой на входе, поэтому, если я хочу перейти, например, к
/home/dave/results/sample/today
Я могу просто набрать любое из следующего:
fcd /h/d/r/spl/t
fcd /h/d/r/s/t
fcd /h/d/r/sam/t
fcd /h/d/r/s/ty
Используя первое в качестве примера, он выполнит cd /*h*/*d*/*r*/*s*p*l*/*t*
и позволит оболочке отсортировать то, что действительно соответствует.
Пока первый символ правильный, и по одной букве из каждого каталога в пути написано, он найдет то, что вы ищете. Возможно, вы сможете адаптировать это для своих нужд? Важный бит:
$(joinstr \* $(echo "$*" | fold -w1))*
, которая создает нечеткую строку поиска.