특정 연령의 폴더를 찾은 다음 지정된 크기로 필터링하고 일치하는 폴더를 삭제 하시겠습니까?


1

나는 이것에 대해 한동안 문제가 있었다. 배관에 대한 능력이 매우 제한적이지만 여기에 마침내 나온 것이 작동하는 것 같습니다.

나는 이것이 내 목표를 달성하기위한 나쁜 방법이라고 생각합니다.보다 효율적인 방법을 사용할 수있는 더 간단한 방법이 있습니까?

$ find /home/data/cam*/* -maxdepth 0 -type d -mtime +30 \
    -exec du -sm {} \;| awk '{if ( $1 > 3000 ) print $2}' | xargs rm -rf

답변:


1

실제로 꽤 좋습니다. /home/data/cam*/* -maxdepth 0부분이 괜찮다고 가정하고 디렉토리 이름에 줄 바꿈이 포함되어 있지 않다고 가정하면 다음과 같이합니다.

find /home/data/cam*/* -maxdepth 0 -type d -mtime +30 -exec du -sm {} + | \
    awk '$1 > 3000' | cut -f 2- | xargs rm -rf

-exec du -sm {} +최적화이며 du각 디렉토리에 대해 실행되지 않습니다 . 그리고 awk '$1 > 3000' | cut -f 2-디렉토리 이름에 공백이 포함 된 경우이 여전히 작동 확인합니다.


좋아, 나는 온라인에서 그런 것들을 보았지만 그것이 무엇인지 몰랐습니다. 감사합니다
nathan
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.