1

На машине UNIX я в своем текущем каталоге создаю символическую ссылку:

> ln -s public_html/code/index.html

Который создает файл с локальным именем index.html . Как cd - диск в каталоге public_html/code из файла мягкой ссылки?

3 ответа3

4

В sh подобной среде:

cd $(dirname $(readlink -f path/to/link))

Вы можете поместить это в функцию:

function cdl
{
    cd $(dirname $(readlink -f "$1"))
}
1

Это будет работать.

cd_link ()
{
    LINK="$1";
    [ ! -L "$LINK" ] && return;
    DIR=$(readlink "$LINK");
    DIR=${DIR%/*};
    cd $DIR
}

Это должна быть функция, а не скрипт. Вставьте ваш .bashrc, .kshrc и т.д.

0

одна линия:

cd $(dirname $([ -L $0 ] && readlink -f $0 || echo $0))

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .