![grep 옵션의 완전히 반대 조합](https://linux55.com/image/122294/grep%20%EC%98%B5%EC%85%98%EC%9D%98%20%EC%99%84%EC%A0%84%ED%9E%88%20%EB%B0%98%EB%8C%80%20%EC%A1%B0%ED%95%A9.png)
나는 그랬다: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
-H
(인쇄 파일 이름)은 grep
여러 파일과 관련된 호출을 의미합니다. -L
지정된 패턴과 일치하지 않는 모든 파일을 나열하기 때문에 이것이 수행되는 작업입니다.
다음...
grep -r -l -L
동일합니까?
grep -r -L
이는 단순히 옵션이 충돌하기 때문입니다 -l
. -L
이 경우 마지막으로 발생한 플래그가 이전 충돌 플래그를 재정의합니다. (감사해요@don_crissti이것을 지적하십시오. )
따라서 실제로는 grep -r -L
및 가 있습니다 grep -r -L
.