Каждая программа видит полную командную строку, которая использовалась для выполнения ее (за исключением подстановочных знаков и переменных, которые оболочка разворачивает).
В программе C командная строка хранится в argv
, который короток для вектора аргумента.
Имя проножки является первым элементом argv
, т.е. argv[0]
.
Очевидно в случае halt
и reboot
, программа изменяет свое поведение на основе argv[0]
.
От удара Вы видите, что полная командная строка раньше выполняла использование программы ps -p <pid> -o cmd
или cat /proc/<pid>/cmdline
.
Обратите внимание, что существует другой тип ссылки, названной жесткой ссылкой, которая будет иметь тот же эффект. В моей системе, например, sudo
и sudoedit
тот же файл с двумя различными именами и различными поведениями.
ls -i
может помочь Вам найти те команды, например:
$ ls -il | awk '$3 != 1 { print }'
total 156872
2491111 -rwsr-xr-x 2 root root 127560 2011-01-20 05:03 sudo
2491111 -rwsr-xr-x 2 root root 127560 2011-01-20 05:03 sudoedit
Посмотрите man ln
для получения дополнительной информации о жестких ссылках, если Вы не знакомы с ними.
Солярис или OpenSolaris.
Довольно интересный преемник UNIX является исследованием План 9 ОС от Bell Labs.