Eu fiz:grep -r -H -L txt ~
Egrep -r -l -L txt ~
Ele lista todos os arquivos? Porque estou obtendo uma produção muito longa.
Responder1
Seus dois comandos são exatamente iguais ... ambos recorrem ao seu diretório inicial e listam arquivos que não contêm o padrão 'txt'.
Para provar que eles têm a mesma saída, você pode fazer
diff <(grep -r -H -L txt ~) <(grep -r -l -L txt ~)
Dividindo um pouco...
grep -r -H -L
é o mesmo que
grep -r -L
-H
(imprimir nomes de arquivos) está implícito para qualquer grep
chamada que envolva mais de um arquivo. É isso que -L
acontece, pois lista todos os arquivos que não correspondem ao padrão especificado.
Próximo...
grep -r -l -L
é o mesmo que
grep -r -L
Isso se deve simplesmente ao fato de que -l
e -L
são opções conflitantes e, nesses casos, o último sinalizador a aparecer substitui qualquer sinalizador conflitante anterior. (Graças a@don_crisstipor apontar isso.)
Então você na verdade tem grep -r -L
e grep -r -L
.