2014-05-14 4 views
0

Linux OS에서 검색 중이며 (".name"파일 ") 검색 결과에서"permission denied "로 끝나는 여러 줄을 필터링하려고합니다. 사용 권한이 거부 된 텍스트는 검색 문자열 자체가 아니기 때문에 검색 결과에서 텍스트를 제외 할 방법이 없습니다. 그러나 그것을 제거하면 내가 원하는 것을 정확하게 찾을 수 있습니다.Linux 검색에서 권한 거부 검색 결과 제거

제안 사항?

감사합니다, 에반

당신은 단순히는/dev/null로 표준 오류 출력을 리디렉션 할 수 있습니다

답변

0

find이 정상 출력을 쓴다 더 읽기 확인을 위해

find . -name "file" 2>/dev/null 

에 "표준 출력" "permission denied"와 같은 오류 메시지는 "표준 오류"에 기록됩니다. 이들은 두 개의 다른 데이터 스트림입니다. 그러나 그들은 일반적으로 터미널로 향하게되어 출력이 혼합됩니다.

셸을 사용하면 이러한 데이터 스트림을 다른 위치로 보낼 수 있습니다. 귀하의 경우에는, 당신은 /dev/null로 보내 find 오류 메시지를 폐기 할 수 :

find . -name "file" 2>/dev/null 

, "2"는 여기에는/dev/null로 직접 파일 기술자 2 (표준 오차)을 의미한다.

당신은 배관 및 리디렉션이 결합 할 수 있습니다 :

find . -name "file" 2>/dev/null | grep .... 
find . -name "file" 2>/dev/null > list-of-files.txt 

첫 번째 예는 grep 명령에 find의 정상적인 출력을 전달합니다. 두 번째는 find의 출력을 파일에 씁니다.