Comando Linux para encontrar todas as instâncias de um padrão de arquivo?

1

Estou procurando uma maneira de verificar um diretório recursivamente e imprimir todas as instâncias de qualquer arquivo que termine ".qfx". Assim, para um determinado diretório:

somedir/
    fizz.qfx
    buzz.qfx
    blah/
        foo.qfx
        widget.js
        meh/
            bar.qfx
            derp.gif

A saída seria:

somedir/fizz.qfx
somedir/buzz.qfx
somedir/blah/foo.qfx
somedir/blah/meh/bar.qfx

Eu estou no Ubuntu, então não há preferência em shell, python, perl, etc. A melhor tentativa até agora é:

find -name ".qfx" somedir

Mas recebendo o seguinte erro:

find: paths must precede expression: .
Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec][path...] [expression]

Alguma ideia? Obrigado antecipadamente!

    
por pnongrata 19.06.2013 / 00:01

3 respostas

2

diz-lhe para colocar o diretório antes da expressão -name . Além disso, você precisa de um * para corresponder a todos os arquivos:

find somedir -name "*.qfx" 
    
por 19.06.2013 / 00:07
1

No caso de você usar zsh como shell, você também pode usar ls **/*.qfx , o que é bastante útil.

    
por 19.06.2013 / 01:03
1
find /u02/fullbackup -name *.bck -print
find: paths must precede expression: arc_381465332_OSOS_20160219_2879_1.bck
Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]

solução:

find /u02/fullbackup -name '*.bck' -print

/u02/fullbackup/dbf_381465332_OSOS_20160219_2872_1.bck
/u02/fullbackup/arc_381465332_OSOS_20160219_2882_1.bck
/u02/fullbackup/arc_381465332_OSOS_20160219_2892_1.bck
/u02/fullbackup/arc_381465332_OSOS_20160219_2894_1.bck
/u02/fullbackup/arc_381465332_OSOS_20160219_2891_1.bck
/u02/fullbackup/arc_381465332_OSOS_20160219_2885_1.bck
/u02/fullbackup/dbf_381465332_OSOS_20160219_2871_1.bck
/u02/fullbackup/arc_381465332_OSOS_20160219_2888_1.bck
    
por 19.02.2016 / 10:24