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