O padrão [a_]* corresponde a nomes que começam com um dos caracteres a ou _ . O padrão *[.csv] corresponde nomes que terminam com um dos caracteres . , c , s ou v . Para corresponder nomes que começam com a_ , use -name 'a_*' . Para corresponder nomes que terminam com .csv , use -name '*.csv' .
find ../ -name 'a_*' -a -name '*.csv' ou equivalentemente find ../ -name 'a_*.csv' corresponde a arquivos cujo nome começa com a_ e termina com .csv . Isso não filtra nos diretórios percorridos para alcançar o arquivo.
Se os arquivos estiverem em subdiretórios do diretório pai (por exemplo, ../a_foo/wibble.csv ), você não precisará do find : o comando find será útil somente para pesquisar árvores de diretórios de forma recursiva. Você pode usar echo ou ls :
ls ../a_*/*.csv
Se os arquivos puderem estar em subdiretórios abaixo dos diretórios a_* (por exemplo, ../a_foo/wibble.csv ou ../a_foo/bar/wibble.csv mas não ../qux/a_foo/wibble.csv ), chame find e peça para pesquisar os diretórios a_* .
find ../a_* -name '*.csv'
Como alternativa, em vez de usar find , você pode usar o ** curinga para pesquisar em subdiretórios recursivamente. No ksh93, você precisa habilitar esse padrão com set -o globstar primeiro. No bash, você precisa ativar esse padrão com shopt -s globstar primeiro. Em zsh, esse padrão é ativado por padrão. Outras shells como sh simples não possuem ** .
ls ../a_*/**/*.csv
Se os diretórios a_* puderem estar em qualquer profundidade abaixo do diretório pai, você poderá usar find -path ou ** :
find .. -path '*/a_*/*.csv'
ls ../**/a_*/**/*.csv
