저는 특정 폴더에서 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보다 논리적이고 더 긴밀하게 바인딩된다는 것입니다. Parens는 이에 대응합니다.
괄호 없이 find
일치하는 파일을 찾고 있습니다.어느 하나(ㅏ)-mtime +30 -type f -name "*.log*"
또는(ㄴ) -name "*.out*"
.
괄호를 사용하여 find
(a) 일치하는 파일을 찾습니다.-mtime +30 -type f
그리고(b) -name "*.log*"
또는 중 하나와 일치합니다 -name "*.out*"
.