Как найти / исправить ошибку в пути

Часто бывает, что длинный путь ошибочен или вы получаете запись в файле журнала, которая не существует. Есть ли команда или функция оболочки, которая перемещает иерархию путей до тех пор, пока не найдет соответствующий путь?

Обмен командной строкой может выглядеть так:

$ ls /var/lib/my/supper/complicated/path File or directory not found $ fixpath /var/lib/my/supper/complicated/path Found /var/lib/my 

В качестве бонусной функции обнаружение сходства было бы замечательным:

 $ fixpath /var/lib/my/supper/complicated/path Found /var/lib/my Did you mean /var/lib/my/super/complicated/path 

  • tmux / zsh помещает вставленный текст
  • Исключение «sudo» из истории оболочки
  • Как связать последовательность клавиш с виджетами в режиме vi cmd zsh?
  • alias vs export для простых команд
  • Проблемы с дублированием $ PATH
  • Как тихо получить пустую строку из шаблона шара без совпадений
  • gnome-terminal: небольшой зазор в правой части экрана (Ubuntu)
  • Ctrl-Arrow больше не работает после установки Prezto
  • One Solution collect form web for “Как найти / исправить ошибку в пути”

      $ fixpath /home/user/docus/collection/unix/djakl/jfkdsl/dfjksld/fsdkl Found /home/user/docus/collection/unix $ type fixpath fixpath is a function fixpath () { CURDIR="$PWD"; DIR="$1"; E=1; while [ $E -eq 1 ]; do cd "$DIR" 2> /dev/null && { E=0; echo Found "$DIR" } || { DIR="${DIR%/*}"; DIR="${DIR:-/}" }; done; cd "$CURDIR" } 

    Самосогласование подобия самых современных оболочек может само по себе. По крайней мере, bash и zsh делают.

    Linux и Unix - лучшая ОС в мире.