Não é assim que find
funciona. O primeiro argumento é um diretório para pesquisar (ou um único nome de arquivo). Se você deseja fornecer padrões, use -name
ou -iname
ou -regex
ou opções semelhantes. Por exemplo:
find /my/directory/ -name "*txt" -mtime +31 -ls
Eu também alterei -exec ls {} \;
para usar a opção -ls
de encontrar o que faz a mesma coisa com mais eficiência.
A única maneira de verificar seria executar um ls
ou outro find
primeiro e isso parece bobagem para evitar uma mensagem de erro completamente inofensiva.
Se desejar, você também pode especificar que está procurando um arquivo normal, sem diretórios, etc., usando -type
:
find /my/directory/ -type f -name "*txt" -mtime +31 -ls
Isso localizará todos os arquivos .txt
, incluindo aqueles nos subdiretórios de /my/directory
, se não for o que você deseja, especifique uma profundidade máxima:
find /my/directory/ -maxdepth 1 -type f -name "*txt" -mtime +31 -ls