Procura por arquivos e imprime seu caminho completo

1

ls -R /media/X | grep filename me permite pesquisar nomes de arquivos, mas ele imprime apenas o nome do arquivo e não o diretório em que ele reside. Como posso imprimir o nome do arquivo e seu diretório?

    
por wisdom 19.04.2012 / 22:01

3 respostas

4

Você pode usar o comando find para esses fins.

Tente

find /media/X | grep filename

Você pode obter os mesmos resultados sem grep (como @geekosaur aponta), mas a sintaxe do find pode ser problemática se você já está acostumado a grep .

    
por 19.04.2012 / 22:04
5

ls e grep não são realmente as ferramentas certas para isso; você quer o comando find .

find /media/X -name '*filename*'

Isso também permite procurar outras condições, como por idade.

    
por 19.04.2012 / 22:04
0

A resposta atualmente aceita do @Dennis consumirá uma grande quantidade de CPU e / ou IO se houver muitos arquivos em /media/X , já que encontrar listará recursivamente tudo sob o caminho definido, a menos que sejam usados alguns sinalizadores de limitação. No caso comum, isso pode não importar, mas a recursão profunda seguida por uma lista excessivamente longa não é, certamente, ideal.

Você geralmente obterá resultados mais rápidos usando o comando locate (por exemplo, do pacote mlocate ). Por exemplo:

$ locate virtualbox/README.Debian
/usr/share/doc/virtualbox/README.Debian.gz
/usr/share/doc/virtualbox/README.Debian.html

A principal limitação desta abordagem é que os vários pacotes locate geralmente não indexam os diretórios home privados sob o ecryptfs, o que pode ser uma preocupação para os usuários do Ubuntu. Como o OP está usando o Ubuntu, eu recomendo usar locate para arquivos do sistema, e encontrar com alguns flags limitadores sensíveis para qualquer coisa armazenada em uma montagem ecryptfs.

Por último, vale a pena mencionar que usar encontrar sem um caminho absoluto, já que o ponto de partida pode não fazer o que o OP quer. A questão original era como retornar um nome de arquivo junto com seu caminho, portanto, a menos que um caminho relativo seja aceitável, localizar tem mais chances de retornar o resultado adequado.

    
por 20.04.2012 / 00:18