여러 개의 연속된 파일 이름을 제거하지만 첫 번째 파일 이름의 일부는 무시합니다.

여러 개의 연속된 파일 이름을 제거하지만 첫 번째 파일 이름의 일부는 무시합니다.

가끔 내 스크립트가 무한 루프에 빠지는 경우가 있습니다. 새 파일을 생성하기 위해 반복할 때 상황이 지저분해질 수 있습니다.

현재 다음과 같은 파일 이름 형식을 사용하고 있습니다.

Task.4883.store.log

4883카운터는 어디에 있나요?

처음 10개 파일(예: 0-9(포함)의 카운터)을 제외한 모든 파일을 삭제해야 합니다. 현재 스크립트에 반응하고 중지하기 전에 약 10,000개의 파일이 생성됩니다. SSD는 정말 빠릅니다.

rm너무 많은 주장을 받아들이지 않으면 상황이 조금 더 어려워집니다.-bash: /bin/rm: Argument list too long

아, 저는 지금 맥을 사용하고 있어요.

답변1

POSIX는 이름에 개행 문자가 포함된 파일을 처리할 수 있습니다.

find . -name 'Task.??*.store.log' -exec rm -f {} +

답변2

find . -name 'Task.??*.store.log' | xargs rm -f

답변3

그리고 zsh:

rm Task.<10->.store.log 

피하기 위해매개변수 목록이 너무 깁니다.:

autoload zargs # best in ~/.zshrc 
zargs Task.<10->.store.log -- rm

관련 정보