-path "/usr/local/connect/"
corresponderia apenas a um caminho de arquivo que é exatamente /usr/local/connect/
. Isso nunca corresponderá porque, com find .
, todos os caminhos começarão com .
Então você quer:
find / -path '/usr/local/connect/*' -type d -prune -o \
-name '*.txt' -type f -mtime -1 -print
O -print
também é importante. Sem ele, haveria um -print
implícito para arquivos que correspondem à expressão inteira (portanto, ambas as partes do -o
).
Note que você também pode usar -xdev
para evitar cruzar qualquer limite do sistema de arquivos.
Se você quiser executá-lo com find .
quando o diretório atual for /usr/local
, isso deve ser:
cd /usr/local &&
find . -path './connect/*' -type d -prune -o \
-name '*.txt' -type f -mtime -1 -print