
find src/ -name "*.cc" -o -name "*.cpp" -print
find src/ -name "*.cc" -o -name "*.cpp"
Предполагаемое поведение — найти все файлы C++ в каталоге и всех его подкаталогах. Насколько я понял, команда -print была командой по умолчанию. Однако эти две команды дают мне существенно разные результаты. Если я перенаправлю их в файл ( printed
и notprinted
, соответственно):
$ wc -l printed notprinted
1813 printed
1979 notprinted
Сравнение каждого отсортированного файла не особо мне помогает. Нет четкой схемы того, что исключается из printed
.
Что тут происходит?
решение1
Ответ — приоритет. Если действие не указано, то печатает, но если указать действие, то делает то, что вы просили. Ваш пример -print
только с файлами печати .cpp
. Вероятно, вы хотите:
find src/ \( -name "*.cc" -o -name "*.cpp" \) -print
У вас может быть несколько условий с разными действиями.