특정 폴더에서 30일이 지난 파일을 찾는 스크립트를 작성 중입니다. 요구 사항에 따라 확장명이 있는 파일만 삭제해야 합니다.. 통나무또는. 나가하위 디렉터리를 건너뜁니다.
다음 명령은 30일 전에 수정된 모든 .log* 파일을 반환합니다. 그러나 가장 최근 파일까지 포함하여 모든 .out 파일을 반환합니다. 아래 코드에 문제가 있나요?
find -maxdepth 1 -mtime +30 -type f -name "*.log*" -o -name "*.out*"
위의 진술에서 무엇이 문제인지 말해주실 수 있나요?
답변1
노력하다:
find -maxdepth 1 -mtime +30 -type f \( -name "*.log*" -o -name "*.out*" \)
문제는 find
논리적 OR이 논리적 OR보다 더 밀접하게 결합된다는 것입니다. 괄호가 이를 상쇄합니다.
괄호가 없습니다. find
일치하는 파일을 찾고 있습니다.누구나(ㅏ)-mtime +30 -type f -name "*.log*"
또는(둘) -name "*.out*"
.
괄호를 사용하여 find
(a)와 일치하는 파일 찾기-mtime +30 -type f
그리고(b) 일치 -name "*.log*"
또는 -name "*.out*"
.