![".log"뿐만 아니라 모든 문자로 끝나야 하는 로그 파일 이름을 찾습니다.](https://linux55.com/image/193558/%22.log%22%EB%BF%90%EB%A7%8C%20%EC%95%84%EB%8B%88%EB%9D%BC%20%EB%AA%A8%EB%93%A0%20%EB%AC%B8%EC%9E%90%EB%A1%9C%20%EB%81%9D%EB%82%98%EC%95%BC%20%ED%95%98%EB%8A%94%20%EB%A1%9C%EA%B7%B8%20%ED%8C%8C%EC%9D%BC%20%EC%9D%B4%EB%A6%84%EC%9D%84%20%EC%B0%BE%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
5일보다 오래된 모든 로그 파일을 찾아야 하며, 파일 이름은 .log와 임의의 문자(예: first.log20210701, first.log는 아님)로 끝나야 합니다. 이 명령을 시도했지만 ".log"도 표시됩니다.
find . -type f -name '*.log*' -mtime +5
저 좀 도와 주 시겠어요?
답변1
다음과 같은 것( .+
"하나 이상의 문자"를 의미):
find . -regex ".*\.log.+" -mtime +5
또는 POSIXly( ?
하나의 문자가 필요하므로 ?*
"하나 이상의 문자"를 의미):
find . -name "*.log?*" -mtime +5
답변2
find . -type f -name '*.log*' ! -name '*.log' -mtime +5
로 끝나는 파일 이름을 허용하지 않는 것이 바로 .log
그 ! -name '*.log'
일입니다.
그러면 찾을 수 있지만 first.log20210701
OR은 아닙니다 first.log
.first.log20210701.log
first.login.log