Bash의 폴더 크기 확인
디렉터리 크기를 계산하고 크기가 10GB 미만이고 2GB 이상이면 작업을 수행하는 스크립트를 작성하려고 합니다.내 폴더 이름을 어디서 언급해야 합니까?
# 10GB
SIZE="1074747474"
# check the current size
CHECK="`du /data/sflow_log/`"
if [ "$CHECK" -gt "$SIZE" ]; then
echo "DONE"
fi
할 수 있는 일:
du -hs your_directory
그러면 대상 디렉터리의 크기를 간략하게 출력할 수 있습니다.와 같은 와일드카드 사용*
여러 디렉터리를 선택할 수 있습니다.
대상 내의 모든 파일 및 하위 디렉터리에 대한 전체 크기 목록을 원하는 경우 다음을 수행할 수 있습니다.
du -h your_directory
팁:
인수 추가
-c
마지막에 전체 행이 표시됩니다.예:du -hcs
또는du -hc
.인수 제거
-h
사람이 읽을 수 있는 MiB 또는 GiB 형식 대신 정확한 KiB 형식으로 크기를 확인합니다.예:du -s
또는du -cs
.
하위 폴더가 아닌 폴더 크기만 보려면 다음을 사용할 수 있습니다.
du -hs /path/to/directory
업데이트:
당신은 그걸 알아야 해요du
파일 크기가 아닌 사용된 디스크 공간을 표시합니다.
사용할 수 있습니다.--apparent-size
실제 파일 크기의 합계를 보려면 다음과 같이 하십시오.
--apparent-size
print apparent sizes, rather than disk usage; although the apparent size is usually smaller, it may be larger due to holes in ('sparse')
files, internal fragmentation, indirect blocks, and the like
그리고 물론 그럴 필요는 없습니다.-h
스크립트 내부의 (사용자가 읽을 수 있는) 옵션입니다.
대신 사용할 수 있습니다.-b
스크립트 내부를 보다 쉽게 비교할 수 있습니다.
그러나 주의해야 할 점은-b
적용되는--apparent-size
저절로그리고 그것은 당신이 필요로 하는 것이 아닐 수도 있습니다.
-b, --bytes
equivalent to '--apparent-size --block-size=1'
그래서 제 생각에, 당신은 사용해야 합니다.--block-size
또는-B
#!/bin/bash
SIZE=$(du -B 1 /path/to/directory | cut -f 1 -d " ")
# 2GB = 2147483648 bytes
# 10GB = 10737418240 bytes
if [[ $SIZE -gt 2147483648 && $SIZE -lt 10737418240 ]]; then
echo 'Condition returned True'
fi
디렉토리 내의 모든 디렉토리의 크기를 확인하려면 다음을 사용합니다.
du -h --max-depth=1
요약 사용(-s
) 및 바이트(-b
)를 사용하여 요약의 첫 번째 필드를 자를 수 있습니다.cut
이 모든 것을 종합하면:
CHECK=$(du -sb /data/sflow_log | cut -f1)
디렉터리 크기만 가져오려면 다음과 같이 하십시오.
du --max-depth=0 ./directory
출력은 다음과 같습니다.
5234232 ./directory
폴더의 총 크기와 MB 또는 GB 형식을 보려면 아래 스크립트를 사용하십시오.
$du -s --block-size=M /path/to/your/directory/
# 10GB
SIZE="10"
# check the current size
CHECK="`du -hs /media/662499e1-b699-19ad-57b3-acb127aa5a2b/Aufnahmen`"
CHECK=${CHECK%G*}
echo "Current Foldersize: $CHECK GB"
if (( $(echo "$CHECK > $SIZE" |bc -l) )); then
echo "Folder is bigger than $SIZE GB"
else
echo "Folder is smaller than $SIZE GB"
fi
도움이 된다면, 당신은 또한 당신의 웹사이트에.bashrc
또는.bash_profile
.
function dsize()
{
dir=$(pwd)
if [ -n "$1" ]; then
dir=$1
fi
du -hs "$dir"
}
현재 디렉토리 또는 인수로 전달한 디렉토리의 크기를 인쇄합니다.
언급URL : https://stackoverflow.com/questions/16661982/check-folder-size-in-bash
'sourcetip' 카테고리의 다른 글
의 컨트롤러 작업에서 XML을 작업 결과로 반환하시겠습니까? (0) | 2023.05.03 |
---|---|
애처롭게 느린 Azure 테이블 배치 작업 삽입 및 삭제 (0) | 2023.05.03 |
텍스트 파일을 한 줄씩 읽는 가장 빠른 방법은 무엇입니까? (0) | 2023.05.03 |
wpf: DataGrid 선택한 행 스타일 사용 안 함 - 또는 행 선택 (0) | 2023.04.28 |
이클립스에 사용할 수 있는 vim 플러그인은 무엇입니까? (0) | 2023.04.28 |