리눅스 디스크 공간

리눅스 디스크 공간

주위를 둘러보니 df -hT. 그래서 나는 그것을 사용하여 디스크 공간(전체)과 남은 공간을 얻습니다. 하지만 문제는 이 정보를 얻을 수 있는 다른 방법이 있는지 궁금합니다. 여기에 복사한 코드는 awk를 사용하여(맨 끝에 B를 추가함) 총 디스크 공간을 GB 단위로 제공하고, 보시다시피 awk를 사용하여 잘라냅니다.

이것은 여러분 중 일부에게는 너무 혼란스러울 수 있습니다(저는 아직 bash를 배우고 있습니다). 제안 사항이 있으면 자유롭게 제 마음속에 남겨주세요. 저는 apt-get을 사용하여 소프트웨어를 다운로드하지 않고도 모든 서버/머신에서 작동하는 옵션을 찾고 있다는 점을 명심하세요.

df -hT /home | awk '{print $3}' | awk 'FNR == 2 {print $1 "\B"}'
awk: cmd. line:1: warning: escape sequence `\B' treated as plain `B'
912GB

또한 awk 메시지를 제거하는 방법도 모릅니다. 조금 이상해 보일 수도 있지만 어딘가에서 시작해야 합니다!

답변1

백슬래시를 제거하면 나에게 도움이 되었습니다.

df -hT /home | awk '{print $3}' | awk 'FNR == 2 {print $1 "B"}'

다음과 같이 단순화할 수 있습니다.

df -hT /home | awk 'FNR == 2 {print $3 "B"}'

답변2

정보를 얻는 다른 방법에 대한 질문에 대답하기 위해 coreutils에는 옵션을 사용하여 파일 시스템 정보를 쿼리하는 stat기능이 있습니다 statfs(기본 시스템 호출은 다음과 같습니다) -f. 이는 일반적인 것보다 더 세부적인 정보를 제공할 수 있습니다 df. 예를 들어(형식 지정자의 전체 목록은 stat 맨페이지를 참조하세요):

$ stat -f /tmp --printf='{"block-size": %S, "total-blocks": %b, "free-blocks-users": %a, "free-blocks-root": %f}\n'
{"block-size": 4096, "total-blocks": 7559140, "free-blocks-users": 1693162, "free-blocks-root": 2077148}

더 관련성이 높은 예는 파일 시스템 크기를 블록 단위로 인쇄합니다.

$ stat -f /tmp --printf '%b\n'
7559140

또는 바이트를 계산하려면 블록 크기를 곱합니다(여기서는 수치 계산에 GNU dc가 사용됨).

$ stat -f /tmp --printf '%S %b *p' | dc
30962237440

또는 소수점 이하 두 자리까지 GB 단위로 크기를 계산하고 "GB" 문자열을 추가합니다.

$ stat -f /tmp --printf '%S %b * 2k 1024 dd**/n [GB]p' | dc
28.83GB

이 작업에 사용하려는 프로그래밍 언어에 따라 statfs직접 래퍼를 사용하는 것이 가능할 수도 있습니다.

관련 정보