찾기에서 -ls 오류를 무시하는 방법

찾기에서 -ls 오류를 무시하는 방법

find권한이 손상된 파일이나 폴더(파일이 있어야 하는 rw디렉토리 )를 찾고 결과를 제공하거나 가져오는 rwx명령 을 작성 중입니다 .ls -l

다음 find명령은 작동하는 것 같지만 이 ls부분이 문제를 일으킵니다.

find . '(' -not -readable ')' -or \
       '(' -not -writable ')' -or \
       '(' '(' -not -executable ')' -and -type d ')'

-ls끝에 또는 를 추가하면 -exec ls -l {} \;읽을 수 없는 디렉토리에 도달할 때까지 작동합니다. 이렇게 하면 permission denied오류가 발생하고 완료되지 않고 완전히 종료됩니다. ls -ld $(<that command>)내가 아는 한 작동하지만 뭔가 빠진 것 같은 느낌이 듭니다 find.

그런데 POSIX 준수에 대해 걱정하지 않으므로 가독성을 높이기 위해 기다리는 -or것보다 사용하고 싶습니다 -o.

답변1

실행 불가능한 디렉토리에 도달한 후 find들어가려고 시도하지만 실행 가능하지 않기 때문에 들어갈 수 없습니다. 그것을 사용하려고 하지 말라고 말해야 합니다 -prune.

그리고 단락이 발생하지 않도록 해당 조건을 먼저 설정하십시오.

find . '(' '(' -not -executable ')' -and -type d -and -prune ')' -or \
       '(' -not -readable ')' -or \
       '(' -not -writable ')'

관련 정보