'찾기'로 선택한 파일 그룹의 총 크기
문제
예를 들어, 예상보다 빠르게 채워지는 큰 파일 시스템이 있습니다. 그래서 나는 추가되는 것을 찾습니다.
find /rapidly_shrinking_drive/ -type f -mtime -1 -ls | less
그리고 나는 많은 것들을 발견했습니다. 6 개 유형의 수천 파일. 나는 유형을 단독으로 계산할 수 있습니다.
find /rapidly_shrinking_drive/ -name "*offender1*" -mtime -1 -ls | wc -l
그러나 내가 정말로 원하는 것은이 파일의 디스크에서 총 크기를 얻을 수 있다는 것입니다.
find /rapidly_shrinking_drive/ -name "*offender1*" -mtime -1 | howmuchspace
누군가가있는 경우 Perl One-Liner에 열려 있지만, 멀티 라인 스크립트 또는 File :: 찾기와 관련된 솔루션을 사용하지 않을 것입니다.
해결책
명령 du
디스크 사용에 대해 알려줍니다. 특정 사례의 예제 예 :
find rapidly_shrinking_drive/ -name "offender1" -mtime -1 -print0 | du --files0-from=- -hc | tail -n1
(이전에 나는 썼다 du -hs
, 그러나 내 기계에서 무시되는 것처럼 보입니다 find
'입력은 대신 CWD의 크기를 요약합니다.)
다른 팁
DARN, Stephan202가 옳습니다. 나는 du -s (요약)에 대해 생각하지 않았으므로 대신 awk를 사용했습니다.
find rapidly_shrinking_drive/ -name "offender1" -mtime -1 | du | awk '{total+=$1} END{print total}'
나는 다른 대답을 더 좋아하고 거의 더 효율적입니다.
GNU 찾기와 함께
find /path -name "offender" -printf "%s\n" | awk '{t+=$1}END{print t}'
위의 Jason의 의견을 답의 상태로 홍보하고 싶습니다. 왜냐하면 그것이 가장 니모닉이라고 생각하기 때문입니다 (가장 일반적이지는 않지만 파일 목록을 지정해야한다면 가장 일반적이지는 않지만 find
):
$ du -hs *.nc
6.1M foo.nc
280K foo_region_N2O.nc
8.0K foo_region_PS.nc
844K foo_region_xyz.nc
844K foo_region_z.nc
37M ETOPO1_Ice_g_gmt4.grd_region_zS.nc
$ du -ch *.nc | tail -n 1
45M total
$ du -cb *.nc | tail -n 1
47033368 total
나는이 모든 명령을 시도했지만 운이 없습니다. 그래서 나는이게 답을주는 것을 발견했다.
find . -type f -mtime -30 -exec ls -l {} \; | awk '{ s+=$5 } END { print s }'
당신은 또한 사용할 수 있습니다 ls -l
그렇다면 크기를 찾기 위해 awk
크기를 추출하려면 :
find /rapidly_shrinking_drive/ -name "offender1" -mtime -1 | ls -l | awk '{print $5}' | sum
제휴하지 않습니다 StackOverflow