Во всех системах, когда вы вводите команду, система должна знать, где находится команда.Места, в которых она должна искать программу, перечислены в переменной окружения с именем PATH
.Windows выполняет поиск в каталоге, в котором вы находитесь, а также в PATH
(я полагаю, раньше, но я довольно долго не пользовался Windows), и если он находит исполняемый файл с правильным именем в текущем каталоге, он выполняет его,Windows считает эту «особенность» остальной частью компьютерного сообщества «недостатком безопасности».Следовательно, Unix-подобные среды не выполняют поиск в текущем каталоге, если он явно не указан в пути.Вы можете запустить что-то не в PATH
, указав явный путь к нему.В Unix .
является текущим каталогом, поэтому ./a.out
указывает системе выполнить программу a.out
, найденную в текущем каталоге.