На машине UNIX я в своем текущем каталоге создаю символическую ссылку:
> ln -s public_html/code/index.html
Который создает файл с локальным именем index.html . Как cd - диск в каталоге public_html/code из файла мягкой ссылки?
На машине UNIX я в своем текущем каталоге создаю символическую ссылку:
> ln -s public_html/code/index.html
Который создает файл с локальным именем index.html . Как cd - диск в каталоге public_html/code из файла мягкой ссылки?
В sh подобной среде:
cd $(dirname $(readlink -f path/to/link))
Вы можете поместить это в функцию:
function cdl
{
cd $(dirname $(readlink -f "$1"))
}
Это будет работать.
cd_link ()
{
LINK="$1";
[ ! -L "$LINK" ] && return;
DIR=$(readlink "$LINK");
DIR=${DIR%/*};
cd $DIR
}
Это должна быть функция, а не скрипт. Вставьте ваш .bashrc, .kshrc и т.д.
одна линия:
cd $(dirname $([ -L $0 ] && readlink -f $0 || echo $0))