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 ответ1

1

Ответ - приоритет. Если действие не выполняется, оно печатается, но если вы указываете действие, оно выполняет то, что вы просили. Ваш пример с -print только печатает .cpp файлы. Вы, вероятно, хотите:

find src/ \( -name "*.cc" -o -name "*.cpp" \) -print

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .