команда find выдает разные результаты с/без -print

команда find выдает разные результаты с/без -print
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

У вас может быть несколько условий с разными действиями.

Связанный контент