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

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

중복 가능성:
파인더에서 "Permission Denied" 인쇄물을 제거하려면 어떻게 해야 합니까?

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)로 전송되는 stderr오류 메시지를 포함하여 find 명령의 모든 출력은 이제 stdout(파일 설명자 1)로 이동한 다음 명령에 의해 필터링됩니다 grep.

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

tcsh/csh당신이 사용할 곳

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

관련 정보