Следующее предложение взято из опции -path
руководства по find
:
Обратите внимание, что проверка соответствия шаблону применяется ко всему имени файла, начиная с одной из начальных точек, указанных в командной строке.
Это объясняет, почему ваши альтернативные шаблоны поиска ("./abc/*.txt"
и "*/abc/*.txt"
) работают. Ваш оригинальный шаблон поиска ("abc/*.txt"
) будет работать только в том случае, если корнем поиска является abc
:
find abc/ -path "abc/*.txt"
Что касается разницы между "./abc/*.txt"
и "*/abc/*.txt"
, ни один из них не будет пытаться раскрыть строку перед вызовом find
: первый найдет файлы только в каталоге верхнего уровня ./abc/
, но второй найдет файлы в любом подкаталоге abc
, например ./def/abc/
, ./ghi/def/abc/
и т. д., а также ./abc/
.