Git LFS 전체 크기 가져오기

Git LFS 전체 크기 가져오기

Git LFS 파일의 전체 크기를 얻는 방법은 무엇입니까?

다음을 통해 LFS 파일 목록을 얻을 수 있습니다 git lfs ls-files --size.

b1d5dd29dd - file1.zip (1.42 GB)
27d3073f43 - file2.zip (120 MB)
cacd6dbfe3 - folder/file3.zip (110.2 MB)
295442cd34 - "folder/(120 MB).zip" (110.2 MB)
680bb2ab19 * test.txt (5 B)

노트:둘 다 -사용됨*.

다음을 사용하여 측정기준만 가져오도록 필터링할 수 있습니다 git lfs ls-files --size | awk -F " " '{ print $(NF-1) $NF }' | tr -d '()'.

1.42GB
120MB
110.2MB
110.2MB
5B

이것이 1000(GB) 또는 1024(GiB)의 전력인지 모르므로 더 큰 전력(1.00GB = 1024MB)을 가정할 수 있습니다.

총 1.88GiB( (1.42) * 1024^3 + (120 + 110.2 + 110.2) * 1024^2 + (5) * 1 = 1881648665.48 bytes = 1.88 GiB)를 얻으려면 어떻게 해야 하나요?

Git 상응 항목을 구문 분석하지 않고 전체 크기를 얻는 또 다른 방법 ls도 허용됩니다. 일반 Bash 및 GNU 도구를 사용하는 것이 좋습니다.

답변1

사람이 읽을 수 있는 크기 대신 바이트 크기를 인쇄하기 위한 특정 옵션을 찾을 수 없지만 이 --debug옵션이 효과가 있을 것 같습니다. 그러나 출력은 --debug완전히 다르며 매뉴얼 페이지에 따르면 "정확한 형식은 언제든지 변경될 수 있습니다"이므로 이를 염두에 두십시오.

그러나 바이트 단위의 크기에 대해서는 다음과 같이 할 수 있습니다.

git lfs ls-files --debug | awk -F: '$1~/size/{t+=$2}END{printf "Total is: %dGB\n", t/1024/1024/1024}'

여기서 awk는 변수의 모든 "size" 값을 합산하고 t모든 행을 읽은 후 t/1024/1024/1024 또는 GB 값을 인쇄하고, TB에 대해 또 다른 /1024를 추가하거나 MB 1에 대해 삭제하고 잠시 기다립니다.

("메트릭" 데이터 크기의 존재를 인식하지 못하므로 "GiB", "MiB" 등)

관련 정보