내가 있는 디렉토리에서만 파일을 삭제하지 않으려면 어떻게 해야 합니까?

내가 있는 디렉토리에서만 파일을 삭제하지 않으려면 어떻게 해야 합니까?

디렉터리에서 30일보다 오래된 파일을 삭제하고 싶지만 현재 있는 디렉터리 아래의 디렉터리에서는 삭제하지 않으려고 합니다.

답변1

파일을 삭제하기 전에 목록을 나열하려면:

find . -maxdepth 1 -mtime +30 -type f -ls

파일을 삭제하려면:

find . -maxdepth 1 -mtime +30 -type f -exec rm {} +

~와 함께

  • .현재 디렉토리 지정
  • -maxdepth 1최대 1개 수준의 디렉터리로 내려갑니다.
  • -mtime +30마지막으로 수정된 날짜가 30일을 초과한 파일만
  • -type f일반 파일만

답변2

zsh 쉘에는특별한 와일드카드 확장 기능그게 도움이 될 거예요.

  • 현재 디렉터리에서 30일보다 오래된 파일을 나열합니다.ls -d -- *(.m+30)

  • 현재 디렉터리에서 30일보다 오래된 파일을 제거합니다.rm -- *(.m+30)

zsh 구문은 *(.m+30)다음을 의미하는 와일드카드입니다.

  • *-- 임의의 파일 이름
  • ( ... )-- 한정자로...
  • .-- 일반 파일(디렉토리 등이 아님)
  • m+30-- 수정 시간이 30일 이상 전입니다.

관련 정보