13.05.2008 11:09про ln

Не знал что сим-линк можно формировать на базе аргументов:

% ls -l /usr/local/bin/gvim
lrwxr-xr-x 1 root wheel 3 дек 16 13:12 /usr/local/bin/gvim -> vim*

Здесь gvim - сим-линк на ‘/usr/local/bin/vim -g’.

Комментарии 6 | Рубрики: Информационные технологии

//

6 комментариев to “про ln”

  1. part1zan_

    А под линухом не пашет((. Или я что-то не так делаю?

    Ответить на комментарий
  2. soko1

    part1zan_, сложно сказать. А что именно не пашет?

    Ответить на комментарий
  3. part1zan_

    Ща…

    [15:29:18] che@che-laptop:~# sudo ln -s /sbin/ifconfig -a /usr/local/bin/ifcon_a
    Пароль:
    ln: неверный ключ — a
    Попробуйте `ln –help’ для получения более подробного описания.
    [15:46:15] che@che-laptop:~# sudo ln -s ‘/sbin/ifconfig -a’ ‘/usr/local/bin/ifcon_a’
    [15:46:31] che@che-laptop:~# ifcon_a
    bash: ifcon_a: команда не найдена
    [15:46:37] che@che-laptop:~# /usr/local/bin/ifcon_a
    bash: /usr/local/bin/ifcon_a: Нет такого файла или каталога
    [15:46:47] che@che-laptop:~# ls /usr/local/bin/ifcon_a
    /usr/local/bin/ifcon_a
    [15:46:51] che@che-laptop:~# ls /usr/local/bin/ifcon_a -l
    lrwxrwxrwx 1 root root 17 Май 13 15:46 /usr/local/bin/ifcon_a -> /sbin/ifconfig -a
    [15:46:58] che@che-laptop:~# sudo ln -s /sbin/ifconfig /usr/local/bin/ifcon_a
    ln: создание символьной ссылки `/usr/local/bin/ifcon_a’: Файл существует
    [15:47:44] che@che-laptop:~# sudo rm /usr/local/bin/ifcon_a
    [15:48:03] che@che-laptop:~# sudo ln -s /sbin/ifconfig /usr/local/bin/ifcon_a
    [15:48:15] che@che-laptop:~# ifcon_a
    eth0 Link encap:Ethernet HWaddr 00:17:08:46:90:2F
    (и т. д.)

    В общем, симлинк-то создаётся, но пахать - не пашет.

    Ответить на комментарий
  4. soko1

    part1zan_, да оно не так как-то создаваться должно, нужен видать какой-то ключ к ln, который позволит обрабатывать ключи к создаваемым сим-линкам.

    Ответить на комментарий
  5. techniX

    Не хочу тебя расстраивать, но это не симлинк с параметром.
    vim при запуске проверяет имя команды которой он был запущен, и если он был запущен как “gvim” - он включит графический режим. Можешь проверить - переименуй бинарник vim в gvim и запусти. Так многие утилиты поступают, даже BSD-шные (правда, тут в моде хардлинки)

    кусок из сорцов vim:
    if (TOLOWER_ASC(initstr[0]) == ‘g’ || initstr[0] == ‘k’)
    {
    main_start_gui();
    #ifdef FEAT_GUI
    ++initstr;
    #endif
    }

    Ответить на комментарий
  6. soko1

    techniX, а блин, ну и система извратная :) Спасибо за пояснения.

    Ответить на комментарий