A seguinte frase é da -pathopção no findmanual:
Observe que o teste de correspondência de padrões se aplica a todo o nome do arquivo, iniciando em um dos pontos de início nomeados na linha de comandos.
Isso explica por que seus padrões de pesquisa alternativos ( "./abc/*.txt"e "*/abc/*.txt") funcionam. Seu padrão de pesquisa original ( "abc/*.txt") funcionará apenas se a raiz da pesquisa for abc:
find abc/ -path "abc/*.txt"
Quanto à diferença entre "./abc/*.txt"e "*/abc/*.txt", nem vai tentar expandir a corda antes de chamar find: o primeiro vai encontrar apenas os arquivos no diretório de nível superior ./abc/, mas o segundo vai encontrar arquivos em qualquer subdiretório abc, como ./def/abc/, ./ghi/def/abc/, etc, bem como ./abc/.
find . -path "*/abc/*.txt"simfind . -path "\*/abc/*.txt". Você pode ser tão gentil e responder a essa pergunta corrigida?