Seus dois comandos são exatamente os mesmos ... eles recursam em seu diretório pessoal e listam arquivos que não contêm o padrão 'txt'.
Para provar que eles têm a mesma saída que você pode fazer
diff <(grep -r -H -L txt ~) <(grep -r -l -L txt ~)
Quebrando um pouco ...
grep -r -H -L
é o mesmo que
grep -r -L
-H
(nomes de arquivos de impressão) está implícito para qualquer chamada grep
que envolva mais de um arquivo. Isso é o que o -L
faz, 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 ser exibido substitui quaisquer sinalizadores conflitantes anteriores. (Obrigado a @don_crissti por apontar isso.)
Então, você tem, de fato, grep -r -L
e grep -r -L
.