Бег:
$find . -name *.exe
дает:
./MakeItSo_1.2.2/MakeItSo_1.2.2/MakeItSo.exe
./MakeItSo.exe
но это не единственные исполняемые файлы в каталоге. Например, бег
$find . -name ATLTester.exe
дает:
./Debug/ATLDmoVexaTester.exe
Это из - за оболочки подстановки. Пытаться:
find . -name "*.exe"
Если не заключено в кавычки, *.exe
распространяется на все файлы *.exe
в текущем каталоге, если их нет. Так получилось, что у вас есть только один такой файл, поэтому ваша оригинальная команда была на самом деле:
find . -name MakeItSo.exe
Если у вас нет файлов *.exe
в текущем каталоге, глобализация оболочки не произойдет, команда find
получит аргумент *.exe
буквально, и ваша команда будет работать так, как вы ожидали. С другой стороны, если у вас есть более одного файла с этим расширением, все они будут приведены в качестве аргументов для find
и это приведет к синтаксической ошибке.