루트 사용자가 소유한 하위 디렉터리를 제외하고 5분 후에 생성된 파일을 찾는 방법

루트 사용자가 소유한 하위 디렉터리를 제외하고 5분 후에 생성된 파일을 찾는 방법

"jbossapp" 사용자를 사용하여 이 명령을 사용하여 3분 이상 전에 생성된 ".stat" 파일을 찾았습니다.

find /opt/jboss/* -mmin +3 -name "*.stat" 

최근에 이 명령을 사용하는 동안 루트 사용자를 사용하여 디렉터리에 폴더를 만드는 동안 /opt/jboss/특정 폴더에서 "권한이 거부되었습니다"라는 메시지가 표시되어 검색이 중단됩니다. 루트 권한이 있는 특정 폴더를 어떻게 제외할 수 있습니까?

답변1

사용

find /opt/jboss/* -type f -mmin +3 -name "*.stat" 2>/dev/null

오류 표시를 방지하기 위해 2>/dev/null표준 오류 출력은 특수 파일로 리디렉션됩니다 ./dev/null

우리는 또한 -type f찾고 추가했습니다에프에어즈 아일랜드에만 해당됩니다.

디렉토리를 제외하려면 다음과 같이 사용하십시오.

find /opt/jboss/* -path /path/to/exclude -prune -o -type f -mmin +3 -name "*.stat" 2>/dev/null

을 사용할 수도 있습니다 -not -path.

find /opt/jboss/* -not -path /path/to/exclude -type f -mmin +3 -name "*.stat" 2>/dev/null

루트가 소유한 사용자에 대한 검색 결과를 제외하려는 경우에도 다음과 같이 사용할 수 있습니다.

find . \! -user root   ..... 

답변2

루트 소유 폴더를 제외하려면 찾기를 사용하여 삭제하세요.

find /opt/jboss/. \
   -type d ! -name . -owner root -prune -o -type f -mmin +3 -name '*.stat' -print

해석: 최상위 디렉토리 /opt/joss/에서 이름이 "."이지 않고 "root"에 속하는 폴더는 추적되지 않습니다. 그 밖의 모든 경우에는 3분보다 오래되고 확장자가 ".stat"인 일반 파일을 선택하여 인쇄를 표준 출력으로 더욱 제한합니다.

관련 정보