Localizando um arquivo sem saber seu nome, apenas seu conteúdo? [duplicado]

2

Eu tenho um disco rígido cheio de arquivos e preciso encontrar um arquivo específico sem saber o nome dele. Tudo o que sei é que o arquivo contém uma lista de endereços de e-mail. Existe alguma maneira de localizá-lo?

    
por Kevin Zhang 30.07.2015 / 16:11

2 respostas

1

Você pode tentar usar grep -r :

Aqui está um exemplo em que eu usei o texto "listen_address" em qualquer arquivo do meu diretório home:

aploetz@dockingBay94:~$ grep -r listen_address *
Documents/stackOverFlowAnswer_connectToCassandra.txt~:If you are connecting to Cassandra from your localhost only (a sandbox machine), then you can set the 'listen_address' in your cassandra.yaml:
Documents/stackOverFlowAnswer_connectToCassandra.txt~:    listen_address: localhost
Documents/stackOverFlowAnswer_connectToCassandra.txt:If you are connecting to Cassandra from your localhost only (a sandbox machine), then you can set the 'listen_address' in your cassandra.yaml:
Documents/stackOverFlowAnswer_connectToCassandra.txt:    listen_address: localhost
Documents/stackOverFlowAnswer_connectToCassandra.txt:    listen_address: dockingBay94
Ubuntu One/cassandraClass/cassandra.yaml:listen_address: $(HOSTNAME)
Ubuntu One/cassandraClass/cassandra.yaml:# Leaving this blank will set it to the same value as listen_address
    
por Aaron 30.07.2015 / 16:20
1

Via find e grep

Eu não uso grep -r porque nos sistemas POSIX, você não encontra o parâmetro -r para grep .

find . -type f -print0 | xargs -0 grep 'your_email_address' {} \;

Ou

find . -type f -exec grep -l -- 'your_email_address' +

Existem muitas possibilidades.

O comando localiza todos os arquivos na pasta atual e nas subpastas e passa o resultado para grep . grep encontra os arquivos com your_email_address .

    
por A.B. 30.07.2015 / 16:17