2자리, 3자리 등 숫자 이상의 숫자로 끝나는 모든 파일을 삭제하고 싶습니다.
참고 - 파일이 number 로 끝나면 이 파일이 회전되었으며 실제로 고유한 번호로 백업되었음을 알려줍니다.
예
-rw-r--r-- 1 kafka hadoop 73668 Aug 5 07:56 controller.log.2018-08-05-07
-rw-r--r-- 1 kafka hadoop 73668 Aug 5 08:56 controller.log.2018-08-05-08
-rw-r--r-- 1 kafka hadoop 658893 Aug 7 11:53 controller.log.3
-rw-r--r-- 1 kafka hadoop 1092 Aug 7 14:35 controller.log.2
-rw-r--r-- 1 kafka hadoop 2750003 Aug 7 14:52 state-change.log.2018-08-07-14
-rw-r--r-- 1 kafka hadoop 3678 Aug 7 14:52 log-cleaner.log.2018-08-07-14
-rw-r--r-- 1 kafka hadoop 199094 Aug 7 14:52 controller.log.2018-08-07-14
-rw-r--r--. 1 kafka hadoop 24431 Aug 7 15:07 kafka.err
-rw-r--r-- 1 kafka hadoop 1147 Aug 7 16:02 server.log.10
-rw-r--r-- 1 kafka hadoop 1061 Aug 7 16:02 server.log.9
-rw-r--r-- 1 kafka hadoop 135465 Aug 7 16:07 server.log.8
-rw-r--r-- 1 kafka hadoop 10278 Aug 7 16:07 server.log.7
-rw-r--r-- 1 kafka hadoop 10350 Aug 7 16:07 server.log.6
-rw-r--r-- 1 kafka hadoop 10353 Aug 7 16:07 server.log.5
-rw-r--r-- 1 kafka hadoop 10322 Aug 7 16:07 server.log.4
-rw-r--r-- 1 kafka hadoop 1272 Aug 7 16:07 log-cleaner.log
-rw-r--r-- 1 kafka hadoop 473322 Aug 7 16:07 controller.log.1
-rw-r--r-- 1 kafka hadoop 170 Aug 7 16:07 controller.log
예상 결과:
-rw-r--r--. 1 kafka hadoop 24431 Aug 7 15:07 kafka.err
-rw-r--r-- 1 kafka hadoop 1272 Aug 7 16:07 log-cleaner.log
-rw-r--r-- 1 kafka hadoop 170 Aug 7 16:07 controller.log
이 옵션을 시도했지만 이 옵션이 작동하지 않습니다
find . -type f -mtime +6 -name '*[0-9]' -print -delete
올바른 구문을 작성하도록 도와주세요.
답변1
-regex
에 대한 매개변수를 사용해야 합니다 find
.
find . -type f -mtime +6 -regex '^.*[0-9]$' -print -delete
이렇게 하면 숫자로 끝나는 모든 파일을 일치시키고 삭제합니다(예를 들어 일부 확장자도 숫자로 끝날 수 있다는 점에 유의하세요 .mp4
).
또한 -mtime
부동 소수점 숫자를 지원하지 않으며 항상 다음 날로 반올림됩니다. 따라서 최소 6일 전에 수정된 파일을 삭제하려면 -mtime +5
.
답변2
올바른 구문을 작성하도록 도와주세요.
사용한 것:
find . -type f -mtime +6 -name '*[0-9]' -print -delete
~이다주의 사항이 거의 없는 올바른 구문:
-delete
휴대용이 아닙니다. 일반적으로 구현에서는find
이를 지원할 수도 있고 지원하지 않을 수도 있습니다. 휴대용에 해당하는 것은-exec rm {} \;
.-name
구형과 같은 패턴을 사용합니다. 지역에[0-9]
따라아니면 그렇지 않을 수도 있다정확히 원하는 것을 의미합니다. ASCII 십진수와 다른 집합의 문자와 일치할 수 있습니다(예: 일치할 수 있음).