Jedes Programm kann die vollständige Befehlszeile sehen, mit der es ausgeführt wurde (mit Ausnahme von Platzhaltern und Variablen, die die Shell erweitert).
In einem C-Programm wird die Befehlszeile gespeichert argv, die für Argumentvektor steht .
Der Name des Programms ist das erste Element von argv, dh argv[0].
Im Fall von haltund rebootändert das Programm eindeutig sein Verhalten basierend auf argv[0].
In Bash sehen Sie die vollständige Befehlszeile, mit der ein Programm mit ps -p <pid> -o cmdoder ausgeführt wird cat /proc/<pid>/cmdline.
Beachten Sie, dass es einen anderen Verbindungstyp gibt, der als fester Link bezeichnet wird und den gleichen Effekt hat. Auf meinem System zum Beispiel sudound sudoeditsind die gleiche Datei mit zwei verschiedenen Namen und unterschiedlichen Verhaltensweisen.
ls -i kann Ihnen helfen, diese Befehle zu finden, z.
$ 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
Sehen Sie man lnfür weitere Informationen über Hard - Links , wenn Sie nicht mit ihnen vertraut sind.