Linux에서 find를 실행할 때 "권한 거부" 오류를 건너뛰는 방법은 무엇입니까?

Linux에서 find를 실행할 때 "권한 거부" 오류를 건너뛰는 방법은 무엇입니까?

가능한 중복:
찾기 프로그램에서 "권한 거부됨" 출력 내용을 어떻게 제거합니까?

Linux(SuSE)에서 이 명령을 실행하면 다음과 같습니다.

find / -name ant

다음과 같은 형식의 오류 메시지가 많이 나타납니다.

find: `/etc/cups/ssl': Permission denied

find이러한 오류 표시를 건너뛰고 액세스 권한이 있는 파일만 시도하는 인수를 사용합니까 ?

답변1

에 대한 메시지를 필터링할 수 있습니다 stderr. 나는 stdout이것을 좋아하도록 리디렉션하는 것을 선호합니다.

 find / -name art  2>&1 | grep -v "Permission denied"

설명:

즉, 모든 일반 출력은 표준 출력( stdout)으로 보내집니다. 모든 오류 메시지는 표준 오류( stderr)로 표시됩니다.

grep일반적으로 지정된 문자열을 찾아서 인쇄하고, -v이를 반전시켜서 ​​지정된 문자열을 모두 찾아서 인쇄합니다.그렇지 않다"권한이 거부되었습니다"가 포함되어 있습니다. 일반적으로 (파일 설명자 2)로 전송되는 오류 메시지를 포함하여 find 명령의 모든 출력은 stderr이제 stdout(파일 설명자 1)로 이동한 다음 grep명령에 의해 필터링됩니다.

이는 bash/sh쉘을 사용하고 있다고 가정합니다.

당신은 아래에서 tcsh/csh사용할 것입니다

 find / -name art |& grep ....

관련 정보