A função Bash não funciona de forma recorrente [duplicada]

0

Estrutura de Diretórios:

one.pdf
./subdir/two.pdf
./anothersubdir/three.pdf

Quando eu digito:

find ./ -type f -name "*.pdf"    

recupera todos os pdfs, incluindo subdiretórios.

Função de Bash

function getext {find ./ -type f -name "$1"}

Com esta função no bashrc, digite:

getext *.pdf

Ele só recupera "one.pdf", mas não o restante.

Pergunta : o que acontece aqui com a função? O que está faltando em comparação com a entrada padrão para obter apenas o primeiro arquivo e parar?

Obrigado pela sua ajuda.

    
por Farhang 15.02.2017 / 05:01

1 resposta

4

Pela mesma razão que você cita "*.pdf" nos argumentos para find dentro da sua função, você precisa citar quando chamar a função:

getext "*.pdf"

Caso contrário, o shell tentará corresponder *.pdf a nomes de arquivos no diretório atual, resultando em sua expansão - nesse caso, para one.pdf - antes de ser passado para sua função.

    
por 15.02.2017 / 05:40