LINUX.ORG.RU
Ответ на: комментарий от anonymous

ну почти, их обычно символическими называют

anonymous
()

 В Unix существует два вида ссылок, обычно называемых жесткие  ссылки  и
       символьные,  или  "мягкие"  ссылки.  Жесткая ссылка является всего лишь
       именем какого-либо файла. (Таким образом, файл  может  иметь  несколько
       имен.  Он  будет  удален  с  диска  только  тогда,  когда будет удалено
       последнее из его имен. Количество имен, которые имеет файл,  показывает
       команда  ls(1).  Нет такого понятия, как настоящее имя: все имена имеют
       одинаковый статус. Обычно, но не обязательно, все имена файла находятся
       на файловой системе, которая также содержит и его данные.)


  Мягкая ссылка (или символьная ссылка, или symlink) полностью отличается
       от жесткой ссылки: она является маленьким специальным  файлом,  который
       содержит  путь к файлу. Таким образом, мягкая ссылка может указывать на
       файлы,  которые  находятся  на  других  файловых  системах   (например,
       смонтированных  по  NFS  с другой машины) и не нуждается в наличии того
       файла, на который она указывает.  Когда происходит попытка  доступа  (с
       помощью  системных  вызовов  open(2)  или  stat(2) ), ядро операционной
       системы заменяет ссылку на тот путь, который  она  содержит.   (Однако,
       команда  rm(1)  и  системный  вызов unlink(2) удаляют саму ссылку, а не
       файл, на который она указывает. Для чтения состояния символьной ссылки,
       а  также  имени файла, на который она указывает, используются системные
       вызовы lstat(2) и readlink(2).  Для других системных  вызовов,  которые
       зависят   и   различаются   для   разных   операционных  систем,  может
       осуществляться работа как с самой символьной ссылкой, так и  с  файлом,
       на который она указывает.)

ZZaiatSS ★★
()
Ответ на: комментарий от anonymous

> Почти как ярлыки?

Вроде нет, если ты будешь из программы открывать ярлык - то и откроешь ярлык, а не то, на что он указывает.

На НТФС есть и нормальные ссылки

anonymous
()
Ответ на: комментарий от anonymous

нет. эти ссылки создают, если файл должен лежать в нескольких местах, а копировать его не хочется. еще иногда разные проги считают что либы должны называться по-разному... загляни в /usr/lib - там симлинков просто завались.

Komintern ★★★★★
()
Ответ на: комментарий от anonymous

>Т.е в эти ссылки записывают длинные пути, чтобы не набивать руками? Так?

Можно и так.

Суть не в этом, суть в противопоставлении hard link/ soft link. Первая является альтернативным именем файла, вторая больше похожа на ярлык (то есть указывает на конкретный файл, в случае проблем с ним ничего не работает).

А как использовать - дело десятое.

anonymous
()
Ответ на: комментарий от anonymous

> Т.е в эти ссылки записывают длинные пути, чтобы не набивать руками? Так?

Это одно из применений символических ссылок.

Поведение одних и тех же программ бывает зависит от имени ссылки по которой их запускают.

Ссылка может использоваться для переключения функционала: $ ls -l /bin/sh lrwxrwxrwx 1 root root 4 2008-03-10 23:31 /bin/sh -> dash т.е. когда приложение стартует шелл sh у меня запустится dash. А мог бы ksh или bash.

Ну и мягкая ссылка позволяет ссылаться на объекты из другой файловой системы.

anonymous
()
Ответ на: комментарий от anonymous

> Ссылка может использоваться для переключения функционала:

А как вот такое делается:

ls -l /usr/bin/gmplayer

lrwxrwxrwx 1 root root 7 Июл 27 21:49 /usr/bin/gmplayer -> mplayer

А запускается-то разное по mplayer и gmplayer... А в манах скрывают!!!

anonymous
()
Ответ на: комментарий от anonymous

>А как вот такое делается:

ln -s mplayer /usr/bin/gmplayer

Правда, ссылка выглядит очень странно. обычно прописывают полный путь

ls -s /usr/bin/mplaer /usr/bin/gmplayer

>lrwxrwxrwx 1 root root 7 Июл 27 21:49 /usr/bin/gmplayer -> mplayer

>А запускается-то разное по mplayer и gmplayer... А в манах скрывают!!!

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

router ★★★★★
()
Ответ на: комментарий от router

> ln -s mplayer /usr/bin/gmplayer

Да не, это я как раз таки понимаю, я чайник и ГСМ, но не до такой же степени. ;) Мне интересно как сделать симилинк на исполняемый бинарник так, чтобы этот бинарник запускался с определенными параметрами. В моем примере это сделать из "gmplayer" симилинк на "mplayer -gui"...

> Программно можно получить команду, которая запустила утилиту, и в зависимости от имени выполнять разные действия

Можно чуть подробнее? Или хоть ман какой скажи, а то man ln вообще ни о чем не говорит... :(

anonymous
()
Ответ на: комментарий от anonymous

>Мне интересно как сделать симилинк на исполняемый бинарник так, чтобы этот бинарник запускался с определенными параметрами. В моем примере это сделать из "gmplayer" симилинк на "mplayer -gui"...

Оно может и интересно, но нафига тут симлинк? Такое делают созданием запускающего скрипта. А на него уже можно ссылку сделать...

anonymous
()
Ответ на: комментарий от anonymous

>Можно чуть подробнее

int main (int argc, char argv[]) {
    //argv[0] - это путь к утилите. Либо абсолютный, либо относительный, как была вызвана). Остальные элементы массива - параметры
    // тут код
    return 0;
}

router ★★★★★
()
Ответ на: комментарий от anonymous

>man ln вообще ни о чем не говорит... :(

man busybox

router ★★★★★
()
Ответ на: комментарий от anonymous

> Оно может и интересно, но нафига тут симлинк? Такое делают созданием запускающего скрипта. А на него уже можно ссылку сделать...

Да я в принципе так и делал. Просто интересно как это делать иначе, плюс к тому, вдруг именно я делаю некошерно и есть более Ъ-способ... ;)

2router:

Спасибо, попытаюсь разобраться, хоть и не программист.

// У ЛОРа закончились капчи... :( Та, что сейчас, мне уже третий раз попадается...

anonymous
()
Ответ на: комментарий от anonymous

>// У ЛОРа закончились капчи... :( Та, что сейчас, мне уже третий раз попадается...

Это потому что все выкачивают, а назад закачать никто не хочет. Скоро капчи по талонам выдавать будут.

anonymous
()
Ответ на: комментарий от anonymous

> Это потому что все выкачивают, а назад закачать никто не хочет. Скоро капчи по талонам выдавать будут.

Да ну, я с удовольствием отдам все, что успел скопить. Димез мешает...

Вот для примера: farmbed. Хорошая капча, годная. Отдаю в хорошие руки.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.