본문 바로가기

개발/Linux & DevOps

리눅스 파일 내용 조회 (허가 거부 제외) /dev/null 로 흘리기, xargs 사용

 

현재 파일 속 파일이름 조회

 find . -name "검색내용" 2>/dev/null

 

전체 컴퓨터 파일 속 파일이름 조회

 find / -name "검색내용" 2>/dev/null

 

경로A 파일 내용 조회

 find 경로A -name "검색내용" 2>/dev/null | xargs grep "찾을 내용"

이와 같이 | xargs grep 을 사용해 argument를 부여하고, 파일 내용을 조회한다.

find를 통해 찾은 파일들을 grep 에 argument 로 넘겨, grep 에서 내용을 검색한다.


여기서 2>/dev/null 은 무엇일까?

하나하나 쪼개서 살펴보자.

 

1) 2>/dev/null 이 없을 때 결과

그냥 find 를 통회 조회하면 아래와 같이 허가 거부가 뜬다.

이거이 아인디..

2) 2 의 의미

파일 설명자설명

0 표준 입력
1 표준 출력
2 표준 오류(진단) 출력

허가 거부 메시지는 오류이기 때문에 2 에 해당된다.

 

예를 들어,

 find . -name "a.txt" 2>err.txt

라는 구문이라면, 에러메시지만 err.txt 에 기록될 것이다.

추가적으로, '>' 사인은 write (다 지우고 새로 쓰기), '>>' 사인은 append (기존 내용에 추가하기) 이다.

 

3) /dev/null 의 의미

/dev/null 에 출력하겠다는 것은 아무것도 출력하지 않겠다는 뜻이다.

 

예를 들어,

 - echo Helloworld 를 출력하면 당연히 Helloworld 가 나오지만,

 - echo Helloworld > /dev/null 를 출력하면 아무것도 나오지 않는다.

/dev/null 이라는 空(공) 으로 흘려보냈기 때문이다.

 

마치 무술에서 상대방의 힘을 흘려보내는 것처럼...

상대의 힘을 흘려버린다...

4) 주의할 점

a. grep 은 심볼릭링크도 전부 디렉토리로 인식해 중복으로 검색한다.

b. 리눅스 버전에 따라 올바르게 작동하지 않을수도 있다고 한다.

    간단히 테스트로 이 명령어가 잘 듣는지 확인하고 진행하면 좋겠다.

c. 앗호떡 생각나는 꽃샘 추위.. 다들 건강 조심하세요 !

 

 

 

도움이 되셨다면 ♡공감 ↓광고클릭으로 저를 응원해주세요!!! :D

반응형