A resposta para a pergunta que você fez tem a ver com a álgebra booleana e a precedência do operador. Seu comando find
diz:
- Se for um arquivo normal e o nome corresponder a
*.tex
, não faça nada. - Caso contrário, se não for legível, pule-o sem recursão.
- Caso contrário, execute
grep
.
Coloque o teste de legibilidade primeiro. Isso fará com que os testes correspondentes aos arquivos em que você está interessado sejam anexados ao comando que você deseja executar neles.
find ~ ! -readable -prune -o \
-type f -name "*.tex" -exec grep -l "masi" {} +
Como alternativa, já que você parece estar no Linux e no OSX, use os recursos de recursão do GNU grep.
grep -s -r --include='*.tex' -l 'masi' ~
Você não deve ter arquivos ilegíveis em seu diretório pessoal. Ter arquivos pertencentes ao root indica que você executou alguns programas como root (provavelmente através de sudo
) e deixou alguns arquivos de estado gerados automaticamente ou arquivos temporários por trás.
~/.gvfs
é a raiz da hierarquia de pontos de montagem GVFS e definitivamente deve pertencer a você, e não a root, caso contrário montagens do GVFS que você tentar fazer (de mídia removível, unidades de rede, etc.) não funcionarão. Execute sudo rmdir ~/.gvfs
. Se você não puder excluí-lo porque ainda está em uso, mova-o para fora do caminho ( sudo mv ~/.gvfs
~ / .gvfs.root ') e livre-se dele quando o que estiver montado atualmente for desmontado.