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


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.