Bash에서 현재 디렉토리의 여유 공간을 얻으십시오.

Bash에서 현재 디렉토리의 여유 공간을 얻으십시오.

나는 알고 df -h있지만 pwd정규식 일치 부분은 약간 복잡해 보입니다. 어떤 아이디어가 있나요?

답변1

이 옵션을 사용하면 출력을 더 쉽게 구문 분석할 수 있으므로 -P다음이 보장됩니다.

  1. 각 파일 시스템에 대한 정보는 항상 한 줄에 인쇄됩니다. 마운트된 장치는 별도의 줄에 배치되지 않습니다. 이는 설치 장치 이름이 20자를 초과하는 경우(예: 일부 네트워크 설치의 경우) 열이 잘못 정렬됨을 의미합니다.

이렇게 하면 사용 가능한 여유 공간을 더 쉽게 확보할 수 있습니다.

$ df -Ph . | tail -1 | awk '{print $4}'

( -h메가바이트, 기가바이트 등과 같은 단위를 사용하십시오. 시스템에 단위가 없으면 -k킬로바이트를 사용하십시오.)

경로를 전달하면 df헤더 줄과 경로가 포함된 파일 시스템에 대한 데이터라는 두 줄만 반환됩니다. tail을 사용하여 두 번째 행만 가져올 수 있습니다. 여유 공간이 네 번째 열에 있다는 것을 알고 있으므로 를 사용하여 해당 공간을 얻습니다 awk. 이 모든 작업은 다음을 통해 수행할 수 있습니다 awk.

$ df -Ph . | awk 'NR==2 {print $4}'

아니면 다른 여러 그룹필터.

답변2

그것을하는 방법 df -h .. 그러면 현재 작업 디렉터리가 있는 파티션의 여유 공간이 제공됩니다.

작은 예:

 /usr/local/nagios/libexec # df -h .
 Filesystem            Size  Used Avail Use% Mounted on
 /dev/mapper/vg00-lvol1
                       9.9G  6.1G  3.4G  65% /

답변3

바이트 단위:

df --output=avail -B 1 "$PWD" | tail -n 1

사람이 읽을 수 있는 수준:

df --output=avail -h "$PWD" | tail -n 1

또는

df --output=avail -B 1 "$PWD" |tail -n 1 | numfmt --to="iec"

또는

df --output=avail -B 1 "$PWD" |tail -n 1 | numfmt --grouping

답변4

당신은 할 수간단히이와 같이:

df -h $PWD | awk 'NR==2{print $4}'

명령 설명:

df:(disk free)는 호출 사용자에게 적절한 읽기 권한이 있는 파일 시스템의 여유 디스크 공간 크기를 표시하는 데 사용되는 표준 Unix 명령입니다.

-h: 사람이 읽을 수 있는 형식(예: 메가바이트, 기가바이트 등)으로 출력을 표시합니다.

$PWD: 현재 디렉터리에서 명령을 호출합니다.

|: 가장 왼쪽 명령의 출력을 가장 오른쪽 명령에 전달합니다.

awk:은 프로그래머가 각 입력 파일에서 문자 그대로 prog 또는 -f 파일로 지정된 하나 이상의 파일에 지정된 패턴 집합 중 하나와 일치하는 행을 검색할 수 있게 해주는 유틸리티입니다.

'NR==2: 헤더 -NR==1- 대신 공백 값을 포함하는 두 번째 줄을 가져옵니다.

'{print $4}': 사용 가능한 공간이 포함된 네 번째 열을 가져옵니다.

관련 정보