숫자로 끝나는 파일 찾기 커짐에 따라 백업 스크립트를

로그 파일이 점점 커짐에 따라 백업 스크립트를 만들려고합니다. 내가 가진 것은 현재 파일 (예 : secure파일 /var/log/) 을 복사하고 해당 파일에서 내용을 제거하는 것입니다. 그러나이 같은 이름을 가진 일부 파일은 다음과 같습니다 secure.1, secure.2그리고 내가 좋아하는 모든이를 계산하고, 숫자가 큰 경우 다음 2그들 모두를 보관. 이 파일을 찾거나 계산하는 방법을 찾을 수 없습니다. 나에게 떠오른 첫 번째 생각은 :

find /var/log/ -name *.1 | wc -l

그리고 1하나의 파일이 있으므로 항상 인쇄 됩니다 secure.1. 내가 좋아 {1..5}하거나 비슷한 숫자 범위를 지정할 수있는 for 루프에서 어떻게 셀 수 있습니까 ? 이 파일을 분리하여 하나의 파일로 만들고 백업 또는 삭제하거나 무엇을 … 또는 먼저 숫자로 끝나는이 숫자를 어떻게 찾을 수 있습니까?



답변

간단하게 -name:

find /var/log -name '*.[2-9]'

또는 모든 숫자에 대해 :

find /var/log -name '*.[[:digit:]]'

또는 숫자 다음에 다른 문자가 가능한 경우 :

find /var/log -name '*.[2-9]*'


답변

숫자로 끝나는 파일 이름을 찾으려면 .[1-5] 범위입니다 .

find /var/log/ -type f -regextype sed -regex ".*\.[1-5]$"


답변

왜 …

for log in /var/log/*.[1-5]
do whatever to "$log"
done

find내가 말할 수있는 한 쉘은 필요하지 않다 . 쉘은 그와 같은 글로브를 사용한다 -name. 그리고 모든 파일이 하나의 디렉토리에 있다면 … 물론, 당신이 관심있는 서브 디렉토리 find가 있다면 도움이 될 수 있습니다-쉘에서 나무를 걷는 것은 두통이 될 수 있습니다.


답변