완전히 반대되는 grep 옵션의 조합

완전히 반대되는 grep 옵션의 조합

나는 그랬다:grep -r -H -L txt ~

그리고grep -r -l -L txt ~

모든 파일이 나열됩니까? 정말 긴 출력을 얻고 있기 때문입니다.

답변1

두 명령은 정확히 동일합니다. 둘 다 홈 디렉터리와 'txt' 패턴을 포함하지 않는 파일 목록을 통해 반복됩니다.

그들이 동일한 출력을 가지고 있음을 증명하기 위해 할 수 있는 일

diff <(grep -r -H -L txt ~) <(grep -r -l -L txt ~)

좀 분해해서...

grep -r -H -L

와 같다

grep -r -L

-Hgrep(인쇄 파일 이름)은 두 개 이상의 파일과 관련된 모든 호출에 대해 암시됩니다 . 이는 -L지정된 패턴과 일치하지 않는 모든 파일을 나열하기 때문에 수행되는 작업입니다.

다음...

grep -r -l -L

와 같다

grep -r -L

-l이는 단순히 및 옵션이 충돌한다는 사실 때문이며 -L이러한 경우 나타나는 마지막 플래그가 이전 충돌 플래그를 재정의합니다. (덕분에@don_crissti이 점을 지적해주셔서.)

따라서 실제로는 grep -r -L및 가 있습니다 grep -r -L.

관련 정보