sudo find / -type f -print0 |xargs -0 grep -l 'MyString'
Eu preciso usar o recurso do grep em todo o servidor.
Eu tentei o seguinte:
grep -r 'MyString' /
grep -r 'MyString' /*
No entanto, nada disso parece funcionar. Alguma sugestão?
sudo find / -type f -exec grep "Strring" {} \;
Você tem certeza que quer fazer isso? Isto irá percorrer todos os sistemas de arquivos (locais ou não) e pode muito bem maximizar a CPU em seu servidor.
cd /
find . | xargs grep MyString
Se você está procurando tipos de arquivos específicos:
find . -name *.java | xargs grep Integer
Eu não entendo a abordagem.
Mas se você não for root, receberá um monte de permissões negadas, redirecionando-as para / dev / null. Então você vai conseguir o que quer de volta.
find . / 2>/dev/null | xargs grep MyString 2>/dev/null
cd /
grep -R 'your string' *
Instale o ack , que é empacotado como ack-grep
nos repositórios do Ubuntu. É como uma combinação supercharged de find e grep que faz exatamente o que você quer sem mexer com combinações de comandos.
$ sudo ack-grep -a 'MyString' /
A opção -a
é usada para substituir o comportamento padrão de filtragem de ack, o que limita a pesquisa a tipos de arquivos que ele conhece. Ele ainda excluirá certos arquivos e diretórios, como arquivos de backup que terminam em "~" ou diretórios de controle de origem, como ".svn". Você pode substituir esse comportamento para pesquisar absolutamente tudo usando a opção -u
.
Para limitar a pesquisa a determinados tipos de arquivos:
$ sudo ack-grep -aG '.*txt' MyString
observando que o argumento para -G
é um regex, não um glob.
Ou para tipos de arquivos que o ack já conhece, como arquivos C ++:
$ ack-grep --cpp 'SomeFunctionName'