Проверяет ли argv[0] и есть ли в коде ключ / регистр?
Изучите код и найдите для себя. Но я уверен, что общий ответ: да, что-то подобное.
Это известный трюк. Возьмите BusyBox в качестве примера. Из Википедии:
Типичные компьютерные программы имеют отдельный двоичный (исполняемый) файл для каждого приложения. BusyBox - это один двоичный файл, который представляет собой конгломерат многих приложений, доступ к каждому из которых можно получить, вызвав один двоичный файл BusyBox с различными именами (поддерживаемый наличием символической ссылки или жесткой ссылки для каждого отдельного имени) определенным образом с соответствующими аргументы.
Bash - это еще один пример. От man bash:
Если bash вызывается с именем sh , он пытается максимально близко имитировать поведение при запуске исторических версий sh , при этом также соответствует стандарту POSIX.
Проверьте /bin/sh в вашем Debian Stretch. Это символическая ссылка на (вероятно)... dash . Этот сайт объясняет:
До Debian Lenny оболочкой по умолчанию /bin/sh была bash . Начиная с Debian Squeeze, оболочкой по умолчанию будет dash .